SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Ähnlich wie 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
 

Ähnlich wie 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
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
Epec Engineered Technologies
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
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
 

Kürzlich hochgeladen (20)

Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Unit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.pdfUnit 1 - Soil Classification and Compaction.pdf
Unit 1 - Soil Classification and Compaction.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
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
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
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University 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.