Slides from our XML workshop on the International PHP Conference 2009 in Karlsruhe. Not that much information in here, since we did a lot of live stuff. But hopefully still valueable.
How to Troubleshoot Apps for the Modern Connected Worker
Professional XML with PHP
1. Professional XML with PHP
Arne Blankerts <arne@thephp.cc>, TobiasSchlitt <toby@php.net>
IPC 2009
2009-11-15
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 1 / 26
2. Outline
1 Overview
Welcome
Overview
2 XML
3 XML in PHP
4 Open part
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 2 / 26
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) Professional XML with PHP 2009-11-15 3 / 26
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) Professional XML with PHP 2009-11-15 4 / 26
5. So, what about you?
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 5 / 26
6. Conferences are about contacts
That is why both begin with con. . .
Who are you?
What is your business?
What is your intention behind coming to IPC?
What do you expect from this workshop?
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 6 / 26
7. What can you expect?
Workshop XPath
Introduction to XML Tuesday, 13:45 - 14:45
Working on XML data with XPath in depth
PHP Validating XML
Practical tips and tricks Tuesday, 15:15 - 16:15
Interactive: What would you like DTD, XML Schema and
to know? RelaxNG
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 7 / 26
8. Rules for this workshop
Allways Stick to your place!
Never ask! Repeat: I will not ask anything!
We are not here to show you anything useful!
The only correct solution is told by us!
Do not give feedback on http://joind.in/1041
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 8 / 26
9. Rules for this workshop
Allways Stick to your place!
Never ask! Repeat: I will not ask anything!
We are not here to show you anything useful!
The only correct solution is told by us!
Do not give feedback on http://joind.in/1041
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 8 / 26
10. Outline
1 Overview
2 XML
Overview
Get into code. . .
3 XML in PHP
4 Open part
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 9 / 26
11. What is XML?
General specification for creating markup languages
Data exchange between computer systems
System independent
Human readable
Most used on the web
Successor of SGML
W3C recommendation
1.0 1998 (last update 2008-11-26)
1.1 2004 (last update 2006-08-16)
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 10 / 26
12. XML languages by example
XHTML XML variant of the popular HTML
RSS Really Simply Syndication
Provide news / updates / ... of websites
Read by special clients
Aggregation on portals / planets
SVG Scalable Vector Graphics
Describe vector graphics in XML
Potentially interactive / animated
(via ECMAScript)
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 11 / 26
13. Related technologies - Schemas
Schema
A schema defines the structure XML instance documents.
XMLSchema Written in XML
W3C recommendation
Popular
RelaxNG 2 syntax variants
XML based
Short plain text based
OASIS / ISO standard
Popular
DTD Plain text
W3C recommendation
Deprecated
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 12 / 26
14. Related technologies - Querying
Query
A query extracts a sub-set of information from a data source.
XPath W3C recommendation
Navigation in XML documents
more on that later...
XQuery Functional programming language
Allows complex queries
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 13 / 26
15. Practical
Let’s get into the code
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 14 / 26
16. Outline
1 Overview
2 XML
3 XML in PHP
DOM
XMLReader/-Writer
4 Open part
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 15 / 26
17. Overview
XML APIs
PHP has quite some XML APIs.
The most important are:
DOM
XMLReader / XMLWriter
SimpleXML
Deprecated are:
DOM XML
XML Parser
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 16 / 26
18. Overview - DOM
Document Object Model
Standardized API to access XML tree
W3C recommendation
Level 1 in 1999
Currently: Level 3 (2004)
Available in many languages
C
Java
Perl
Python
...
Represents XML nodes as objects
Loads full XML tree into memory
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 17 / 26
19. Overview - XMLReader/-Writer
Popular approach to access XML data
Similar implementations available in
Java
C#
Pull / push based
Does not load XML fully into memory
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 18 / 26
20. Overview - SimpleXml
Very simple access to XML data
Unique (?) to PHP
Represents XML structures as objects
Initial implementation hackish
Loads full XML tree into memory
You don’t want to use SimpleXML, seriously!
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 19 / 26
21. APIs compared
DOM XMLReader/-Writer SimpleXML
Read •
Write ◦
Manipulate • •
Full control -
Namespaces ◦
XPath -
Validate DTD DTD -
Schema Schema
RelaxNG RelaxNG
Comfort • ◦
Fully supported
• Supported but not nice
◦ Poorly supported
- Not supported at all
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 20 / 26
22. Practical
Let’s get into the code
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 21 / 26
23. Practical
Let’s get into the code
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 22 / 26
24. Outline
1 Overview
2 XML
3 XML in PHP
4 Open part
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 23 / 26
25. What would you like to do?
Discuss a particular problem?
See a special XML technique in PHP?
Get to know related techniques?
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 24 / 26
26. Q/A
Are there any questions left?
Please give us some feedback!
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 25 / 26
27. The end
We hope you enjoyed the workshop!
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/1041
Arne Blankerts, Tobias Schlitt (IPC 2009) Professional XML with PHP 2009-11-15 26 / 26