SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
Humans should not
write XML.
Sometimes, they may need to read it.
Dr. Peter Tröger
Operating Systems Group
TU Chemnitz, Germany
April 2016
Data vs. Document
• Model-View-Controller
• Application data lives in the model.
• Users deal with the view.
• Controller tampers with the model data.
• What are (XML) documents then?
Documents
• Persistent version of application state as file.
• Example: All software with text editing capabilities.
• Document files may be passed around by humans.
• Users can live without document concept.
• When the application state persists anyway.
• Example: Most smartphone apps. Cloud apps.
XML is for documents
• Document markup language
• Must be extensible, which makes it complicated.
• Must be universal, which makes it complicated.
• Must be portable, which makes it less flexible.
• Must be software-processable.
• Should (not must) be human-readable.
https://www.w3.org/TR/2008/REC-xml-20081126/
XML must be software-
processable.
XML should be human-
readable.
Making XML less
complicated is

a non-goal.
Humans vs. XML
• XML is supposed to be human-readable.
• Application views are filters for application data.
• Reading the document gives you the core
version of application data.
• If your application is perfect, you don’t need that.
• XML is not supposed to be human-writable.
Example:
XML for Interface Descriptions
• WSDL, AUTOSAR XML, ...
• On first look, it sounds ok.
• Interfaces descriptions are documents.
• They are (hopefully) processed offline.
• May be passed around between developers.
• Interesting question is the origin of the document.
Example:
XML for Interface Descriptions
• Option 1: Brain -> DSL -> XML Interface Description
• Domain engineer has natural language / tool.
• XML is just the document format.
• Option 2: Brain -> Code -> XML Interface Description
• Forget it. Learn from SOAP-RPC history.
• Option 3: Brain -> XML Interface Description.
• Humans should not write XML.
Example:
XML for Messaging
• The logic:
• Software-to-software messages are documents.
• XML is for documents. Let’s formulate messages in XML.
• Even worse:
• Implementing RPC demands messaging.
• Messages can be formulated in XML.
• Let’s formulate RPC requests in XML. On the wire.
Example:
XML for Messaging
• What is wrong with that argumentation?
• XML is a document format.
• Document formats are not intended for efficiency.
• But messaging data formats should be efficient.
• Document formats are for offline use.
• But messaging is an online problem.
• XML is the wrong tool for the messaging job.
And JSON?
• The JSON hype refuses to die.
• Closer to developers (data) thinking.
• Automatically leads to quick engineering results.
• We get many many re-invented wheels.
• JSON-based interface descriptions.
• JSON-based messaging / RPC.
• XML and JSON solve different problems. 

Documents vs. data. There is no competition.
Conclusion
• Everybody hates XML editing.
• Correct, never intended for that.
• Fix the XML generating application, instead.
• Rules of thumb
• XML is an offline format. Don’t use it online.
• Document exchange and data exchange are not the same.
• Humans should never be forced to write (or click) XML.

Más contenido relacionado

Similar a Humans should not write XML.

Introduction to xml
Introduction to xmlIntroduction to xml
Introduction to xml
soumya
 
Semantic web xml-rdf-dom parser
Semantic web xml-rdf-dom parserSemantic web xml-rdf-dom parser
Semantic web xml-rdf-dom parser
Serdar Sönmez
 
The Role of XML in an Information Society with Barry Schaeffer
The Role of XML in an Information Society with Barry SchaefferThe Role of XML in an Information Society with Barry Schaeffer
The Role of XML in an Information Society with Barry Schaeffer
dclsocialmedia
 

Similar a Humans should not write XML. (20)

XML Retrieval - A Slot Filling Approach
XML Retrieval - A Slot Filling ApproachXML Retrieval - A Slot Filling Approach
XML Retrieval - A Slot Filling Approach
 
Introduction to xml
Introduction to xmlIntroduction to xml
Introduction to xml
 
CrashCourse: XML technologies
CrashCourse: XML technologiesCrashCourse: XML technologies
CrashCourse: XML technologies
 
Dos and donts
Dos and dontsDos and donts
Dos and donts
 
Aspects of NLP Practice
Aspects of NLP PracticeAspects of NLP Practice
Aspects of NLP Practice
 
Xml parsing in codeigniter
Xml parsing in codeigniterXml parsing in codeigniter
Xml parsing in codeigniter
 
Java Web Services
Java Web ServicesJava Web Services
Java Web Services
 
BITM3730 10-31.pptx
BITM3730 10-31.pptxBITM3730 10-31.pptx
BITM3730 10-31.pptx
 
93 peter butterfield
93 peter butterfield93 peter butterfield
93 peter butterfield
 
BITM3730 10-18.pptx
BITM3730 10-18.pptxBITM3730 10-18.pptx
BITM3730 10-18.pptx
 
Xml parser
Xml parserXml parser
Xml parser
 
CRC Final Report
CRC Final ReportCRC Final Report
CRC Final Report
 
Semantic web xml-rdf-dom parser
Semantic web xml-rdf-dom parserSemantic web xml-rdf-dom parser
Semantic web xml-rdf-dom parser
 
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
 
Introduction to XML
Introduction to XMLIntroduction to XML
Introduction to XML
 
Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)Markup For Dummies (Russ Ward)
Markup For Dummies (Russ Ward)
 
Unit iv xml dom
Unit iv xml domUnit iv xml dom
Unit iv xml dom
 
Rust presentation convergeconf
Rust presentation convergeconfRust presentation convergeconf
Rust presentation convergeconf
 
Natural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital HumanitiesNatural Language Processing Tools for the Digital Humanities
Natural Language Processing Tools for the Digital Humanities
 
The Role of XML in an Information Society with Barry Schaeffer
The Role of XML in an Information Society with Barry SchaefferThe Role of XML in an Information Society with Barry Schaeffer
The Role of XML in an Information Society with Barry Schaeffer
 

Más de Peter Tröger

Operating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - ConcurrencyOperating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - Concurrency
Peter Tröger
 

Más de Peter Tröger (20)

WannaCry - An OS course perspective
WannaCry - An OS course perspectiveWannaCry - An OS course perspective
WannaCry - An OS course perspective
 
Cloud Standards and Virtualization
Cloud Standards and VirtualizationCloud Standards and Virtualization
Cloud Standards and Virtualization
 
Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2Distributed Resource Management Application API (DRMAA) Version 2
Distributed Resource Management Application API (DRMAA) Version 2
 
OpenSubmit - How to grade 1200 code submissions
OpenSubmit - How to grade 1200 code submissionsOpenSubmit - How to grade 1200 code submissions
OpenSubmit - How to grade 1200 code submissions
 
Design of Software for Embedded Systems
Design of Software for Embedded SystemsDesign of Software for Embedded Systems
Design of Software for Embedded Systems
 
What activates a bug? A refinement of the Laprie terminology model.
What activates a bug? A refinement of the Laprie terminology model.What activates a bug? A refinement of the Laprie terminology model.
What activates a bug? A refinement of the Laprie terminology model.
 
Dependable Systems - Summary (16/16)
Dependable Systems - Summary (16/16)Dependable Systems - Summary (16/16)
Dependable Systems - Summary (16/16)
 
Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)Dependable Systems - Hardware Dependability with Redundancy (14/16)
Dependable Systems - Hardware Dependability with Redundancy (14/16)
 
Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)Dependable Systems - System Dependability Evaluation (8/16)
Dependable Systems - System Dependability Evaluation (8/16)
 
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
Dependable Systems - Structure-Based Dependabiilty Modeling (6/16)
 
Dependable Systems -Software Dependability (15/16)
Dependable Systems -Software Dependability (15/16)Dependable Systems -Software Dependability (15/16)
Dependable Systems -Software Dependability (15/16)
 
Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)Dependable Systems -Reliability Prediction (9/16)
Dependable Systems -Reliability Prediction (9/16)
 
Dependable Systems -Fault Tolerance Patterns (4/16)
Dependable Systems -Fault Tolerance Patterns (4/16)Dependable Systems -Fault Tolerance Patterns (4/16)
Dependable Systems -Fault Tolerance Patterns (4/16)
 
Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)Dependable Systems - Introduction (1/16)
Dependable Systems - Introduction (1/16)
 
Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)Dependable Systems -Dependability Means (3/16)
Dependable Systems -Dependability Means (3/16)
 
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)Dependable Systems - Hardware Dependability with Diagnosis (13/16)
Dependable Systems - Hardware Dependability with Diagnosis (13/16)
 
Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)Dependable Systems -Dependability Attributes (5/16)
Dependable Systems -Dependability Attributes (5/16)
 
Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)Dependable Systems -Dependability Threats (2/16)
Dependable Systems -Dependability Threats (2/16)
 
Operating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - SummaryOperating Systems 1 (12/12) - Summary
Operating Systems 1 (12/12) - Summary
 
Operating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - ConcurrencyOperating Systems 1 (8/12) - Concurrency
Operating Systems 1 (8/12) - Concurrency
 

Último

Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Kandungan 087776558899
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
jaanualu31
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 

Último (20)

Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptxOrlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
Orlando’s Arnold Palmer Hospital Layout Strategy-1.pptx
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills KuwaitKuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
Kuwait City MTP kit ((+919101817206)) Buy Abortion Pills Kuwait
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 

Humans should not write XML.

  • 1. Humans should not write XML. Sometimes, they may need to read it. Dr. Peter Tröger Operating Systems Group TU Chemnitz, Germany April 2016
  • 2. Data vs. Document • Model-View-Controller • Application data lives in the model. • Users deal with the view. • Controller tampers with the model data. • What are (XML) documents then?
  • 3. Documents • Persistent version of application state as file. • Example: All software with text editing capabilities. • Document files may be passed around by humans. • Users can live without document concept. • When the application state persists anyway. • Example: Most smartphone apps. Cloud apps.
  • 4. XML is for documents • Document markup language • Must be extensible, which makes it complicated. • Must be universal, which makes it complicated. • Must be portable, which makes it less flexible. • Must be software-processable. • Should (not must) be human-readable.
  • 5. https://www.w3.org/TR/2008/REC-xml-20081126/ XML must be software- processable. XML should be human- readable. Making XML less complicated is
 a non-goal.
  • 6. Humans vs. XML • XML is supposed to be human-readable. • Application views are filters for application data. • Reading the document gives you the core version of application data. • If your application is perfect, you don’t need that. • XML is not supposed to be human-writable.
  • 7. Example: XML for Interface Descriptions • WSDL, AUTOSAR XML, ... • On first look, it sounds ok. • Interfaces descriptions are documents. • They are (hopefully) processed offline. • May be passed around between developers. • Interesting question is the origin of the document.
  • 8. Example: XML for Interface Descriptions • Option 1: Brain -> DSL -> XML Interface Description • Domain engineer has natural language / tool. • XML is just the document format. • Option 2: Brain -> Code -> XML Interface Description • Forget it. Learn from SOAP-RPC history. • Option 3: Brain -> XML Interface Description. • Humans should not write XML.
  • 9. Example: XML for Messaging • The logic: • Software-to-software messages are documents. • XML is for documents. Let’s formulate messages in XML. • Even worse: • Implementing RPC demands messaging. • Messages can be formulated in XML. • Let’s formulate RPC requests in XML. On the wire.
  • 10. Example: XML for Messaging • What is wrong with that argumentation? • XML is a document format. • Document formats are not intended for efficiency. • But messaging data formats should be efficient. • Document formats are for offline use. • But messaging is an online problem. • XML is the wrong tool for the messaging job.
  • 11. And JSON? • The JSON hype refuses to die. • Closer to developers (data) thinking. • Automatically leads to quick engineering results. • We get many many re-invented wheels. • JSON-based interface descriptions. • JSON-based messaging / RPC. • XML and JSON solve different problems. 
 Documents vs. data. There is no competition.
  • 12. Conclusion • Everybody hates XML editing. • Correct, never intended for that. • Fix the XML generating application, instead. • Rules of thumb • XML is an offline format. Don’t use it online. • Document exchange and data exchange are not the same. • Humans should never be forced to write (or click) XML.