260 likes | 462 Views
XML. Realizing Portable Data. Ryan Wilson February 12, 2003. XML Agenda. <?xml version=“1.0”?> <presentation> <agenda> <item> The Problem of Data </item> <item> What is XML? </item> <item> Extensions of XML </item> <item> Practical Applications </item> </agenda>
E N D
XML Realizing Portable Data Ryan Wilson February 12, 2003
XML Agenda <?xml version=“1.0”?> <presentation> <agenda> <item>The Problem of Data</item> <item>What is XML?</item> <item>Extensions of XML</item> <item>Practical Applications</item> </agenda> </presentation>
The Problem of Data • How do you store or send data in your application? • Document Storage • ex. Word, Excel, HTML, etc. • Configuration Files • Remote Procedure Calls
The Problem of Data • Proprietary formats • Reinventing the wheel • Rewrite (and debug) parsers • Document format for others
What is XML? • Extensible Markup Language • Derived from SGML • W3C Standard (1998) • A standard format for all types of computer documents • Human readable format • Always text, never binary data
What is XML? • Data is strings of text and delimited by tags • XML doesn’t define the tags! • Makes it a meta-markup language • Flexibility • XML does define what the tags look like and how they can be organized
What is XML? <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
Tags <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
Start Tags <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
End Tags <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
Attributes <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
Processing Instructions <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
Comments <?xml version=“1.0”?> <!-- class information data --> <classRoster course=“COT4810” section=“2”> <teacher>Dutton</teacher> <student>Wilson</student> <student>Doe</student> <testdate></testdate> <testdate/> </classRoster>
What is XML? • You define the tags to use • XML Application • XML Application “Grammar” can be formally defined in: • DTD (Document Type Definition) • XML Schema
What can XML do? • Document Storage • ex. Open Office • Books/Technical Documents • Remote Procedure Calls • Vector Graphics • Slices, Dices, and makes Julian Fries!
What XML is Not • Programming Language • Doesn’t do anything • Network-Transport Protocol • “XML is a structural and semantic markup language, not a presentation language”(XML in a Nutshell p.4) • Not like HTML • Database • XML can be stored in a database • Database could save its data in XML
XML – Portable Data • Simple • Well-documented • Human-readable • ex. NASA’s moon landings data
Using XML • Lots of XML parsers available • Don’t have to write your own! • Standards for Parsers • DOM – Document Object Model • Creates XML Tree • Reads in whole document before processing • Read/Write • SAX • Processes XML as it is read • Read-only
DOM – XML Tree <student> <name>Ryan Wilson</name> <major>Computer Science</major> </student> Root student name major Ryan Wilson Computer Science
Extensions to XML • XSLT • Extensible Stylesheet LanguageTransformations • Convert an XML document into another document • ex. XML document into a web page
<book title=“LoTR: The Two Towers”> <chapter title=“The Departure of Boromir”> Aragorn sped up the hill… </chapter> <chapter title=“The Riders of Rohan”> Dusk deepened. Mist lay behind them… </chapter> <chapter title=“The Uruk-Hai”> Pippin lay in a dark and troubled dream… </chapter> </book>
<html> <head> <title>LoTR: The Two Towers</title> </head> <body> <h1>Table of Contents</h1> <ol> <li>The Departure of Boromir</li> <li>The Riders of Rohan</li> <li>The Uruk-Hai</li> </ol> </body> </html>
Extensions to XML • Presentation XML • or “Making your XML Look Pretty” • CSSCascading Style Sheets • Already used for web pages • Describes how to display XML • XSL-FOXSL Formatting Objects • Use XSLT to turn into XSL-FO
Practical Applicationsor “Why CS Students should care about XML” • Web publishing frameworks • www.gentoo.org • ex. Apache’s Cocoon • Configuration Files • ex. Gconf • Remote Procedure Calls (RPC) • XML-RPC • SOAP –Simple Object Access Protocol
For More Information • www.xml.com • O’Reilly Books • XML in a Nutshell • Java and XML • xml.apache.org