Your SlideShare is downloading. ×
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Validating XML - Avoiding the pain
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Validating XML - Avoiding the pain

1,663

Published on

Slides from the DTD / XSD tutorial by Arne Blankerts and me. We did a lot of live hacking in this session, so the slides are quite thin.

Slides from the DTD / XSD tutorial by Arne Blankerts and me. We did a lot of live hacking in this session, so the slides are quite thin.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,663
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Validating XML - Avoiding the pain Arne Blankerts <arne@thephp.cc>, TobiasSchlitt <toby@php.net> IPC 2009 2009-11-17 Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 1 / 18
  • 2. Outline 1 Welcome 2 Introduction 3 Schema formats 4 The end Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 2 / 18
  • 3. Arne Blankerts Arne Blankerts <arne@thephp.cc> PHP since 1999 (10 years of PHP!) Co-Founder of thePHP.cc ballyhoo. werbeagentur. Open source addicted Inventor and lead developer of fCMS site system Contributor and translator for the PHP manual Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 3 / 18
  • 4. Tobias Schlitt Tobias Schlitt <toby@php.net> PHP since 2001 Freelancing consultant Qualified IT Specialist Studying CS at TU Dortmund (finishing 2010) OSS addicted PHP eZ Components PHPUnit Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 4 / 18
  • 5. Outline 1 Welcome 2 Introduction Why the hell validate? Validation basics 3 Schema formats 4 The end Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 5 / 18
  • 6. XML is everywhere On your HD On the web In your app Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 6 / 18
  • 7. XML is everywhere On your HD On the web In your app Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 6 / 18
  • 8. XML is everywhere On your HD On the web In your app Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 6 / 18
  • 9. XML comes from everywhere From the web From your app From your users From 3rd parties Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 7 / 18
  • 10. XML comes from everywhere From the web From your app From your users From 3rd parties Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 7 / 18
  • 11. XML comes from everywhere From the web From your app From your users From 3rd parties Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 7 / 18
  • 12. XML comes from everywhere From the web From your app From your users From 3rd parties Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 7 / 18
  • 13. So why validate? Broken incoming data breaks your app Broken outgoing data breaks other apps You test code, why not test XML? Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 8 / 18
  • 14. So why validate? Broken incoming data breaks your app Broken outgoing data breaks other apps You test code, why not test XML? Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 8 / 18
  • 15. So why validate? Broken incoming data breaks your app Broken outgoing data breaks other apps You test code, why not test XML? Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 8 / 18
  • 16. So why validate? Broken incoming data breaks your app Broken outgoing data breaks other apps You test code, why not test XML? Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 8 / 18
  • 17. What is a XML schema? Defines the structure of data Possibly defines data types Used to validate correctness Helpful as documentation Similar to database schemas! Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 9 / 18
  • 18. When to use it? On XML generation in your app Before your app consumes XML In your tests Give to your XML consumers Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 10 / 18
  • 19. Outline 1 Welcome 2 Introduction 3 Schema formats Overview DTD XML Schema 4 The end Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 11 / 18
  • 20. XML schema formats DTD XSD RELAX NG Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 12 / 18
  • 21. XML schema formats DTD Document Type Definition Part of the XML specification Allows definition of entities No advanced type support Does not support different types for same element name XSD RELAX NG Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 12 / 18
  • 22. XML schema formats DTD XSD XML Schema W3C recommendation since May 2001 Advanced type support Support for keys and key references No support for entities RELAX NG Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 12 / 18
  • 23. XML schema formats DTD XSD RELAX NG Regular Language for XML Next Generation Defined by OASIS, ISO/IEC 19757 Generally more powerful than XSD No support for entities Not (yet?) as popular as XSD Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 12 / 18
  • 24. DTD Let’s dig into the code. . . Schema definitions Entities Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 13 / 18
  • 25. DTD Let’s dig into the code. . . Schema definitions Advanced types Key and key-ref Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 14 / 18
  • 26. XSD goodies Qualified / unqualified <any> namespace handling Validation of external elements/attributes Abstract types and inheritance Nillable Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 15 / 18
  • 27. XSD goodies Qualified / unqualified <any> namespace handling ##any ##other ##local Validation of external elements/attributes Abstract types and inheritance Nillable Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 15 / 18
  • 28. XSD goodies Qualified / unqualified <any> namespace handling Validation of external elements/attributes strict skip lax Abstract types and inheritance Nillable Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 15 / 18
  • 29. XSD goodies Qualified / unqualified <any> namespace handling Validation of external elements/attributes Abstract types and inheritance Nillable Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 15 / 18
  • 30. XSD goodies Qualified / unqualified <any> namespace handling Validation of external elements/attributes Abstract types and inheritance Nillable Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 15 / 18
  • 31. Outline 1 Welcome 2 Introduction 3 Schema formats 4 The end Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 16 / 18
  • 32. Q/A Are there any questions left? Please give us some feedback! Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 17 / 18
  • 33. The end We hope you enjoyed the session! Slides and material: Delivered by Software & Support http://schlitt.info/opensource On Slideshare (http://slideshare.net) Contact us: Arne Blankerts <arne@thephp.cc> Tobias Schlitt <toby@php.net> Give us feedback on http://joind.in/1043 Arne Blankerts, Tobias Schlitt (IPC 2009) Validating XML - Avoiding the pain 2009-11-17 18 / 18

×