CSE 154 Lecture 12: XML.

Slides:



Advertisements
Similar presentations
The Document Object Model
Advertisements

XML CS What is XML?  XML: a "skeleton" for creating markup languages  you already know it!  syntax is identical to XHTML's: content  languages.
JavaScript and the DOM Les Carr COMP3001 Les Carr COMP3001.
XML XML What XML is and what it means to me as a Computer Scientist By: Derek Edwards CS 376 March 10, 2003.
1 Extensible Markup Language: XML HTML: portable, widely supported protocol for describing how to format data XML: portable, widely supported protocol.
1 Extensible Markup Language: XML HTML: portable, widely supported protocol for describing how to format data XML: portable, widely supported protocol.
1 COS 425: Database and Information Management Systems XML and information exchange.
CS 898N – Advanced World Wide Web Technologies Lecture 22: Applying XML Chin-Chih Chang
XML(EXtensible Markup Language). XML XML stands for EXtensible Markup Language. XML is a markup language much like HTML. XML was designed to describe.
CSE 154 LECTURE 23: XML. Storing structured data in arbitrary text formats (bad) My note: BEGIN FROM: Alice Smith TO: Robert Jones.
Introduce of XML Xiaoling Song CS157A. What is XML? XML stands for EXtensible Markup Language XML stands for EXtensible Markup Language XML is a markup.
The Document Object Model (DOM) & Asynchronous Javascript And XML (AJAX) : an introduction UFCEKG-20-2 : Data, Schemas and Applications.
CSE 154 LECTURE 24: XML AND JSON. Debugging responseXML in Firebug can examine the entire XML document, its node/tree structure.
Pemrograman Berbasis WEB XML part 2 -Aurelio Rahmadian- Sumber: w3cschools.com.
Creating a Basic Web Page
 Introduction to XML Introduction to XML  Features of XML Features of XML  Syntax of XML Syntax of XML  Syntax rules of XML document Syntax rules.
HTML DOM.  The HTML DOM defines a standard way for accessing and manipulating HTML documents.  The DOM presents an HTML document as a tree- structure.
JS: Document Object Model (DOM)
1Computer Sciences Department Princess Nourah bint Abdulrahman University.
JavaScript & DOM Client-side scripting. JavaScript JavaScript is a tool to automate client side (which is implemented using HTML so far) JavaSript syntax.
D2L Notes Be sure to submit your link in the dropbox provided on D2L You can just upload an empty text file if a file upload is required Do not use D2L.
Lecture 13 – XML and JSON SFDV3011 – Advanced Web Development Reference: 1.
Review IDIA 619 Spring 2013 Bridget M. Blodgett. HTML A basic HTML document looks like this: Sample page Sample page This is a simple sample. HTML user.
 XML is designed to describe data and to focus on what data is. HTML is designed to display data and to focus on how data looks.  XML is created to structure,
5.2 DOM (Document Object Model). 2 Motto: To write it, it took three months; to conceive it three minutes; to collect the data in it — all my life. —F.
How do I use HTML and XML to present information?.
Date : 3/3/2010 Web Technology Solutions Class: Application Syndication: Parse and Publish RSS & XML Data.
JavaScript IV ECT 270 Robin Burke. Outline DOM JS document model review W3C DOM.
An Introduction to XML Sandeep Bhattaram
What it is and how it works
C# and Windows Programming XML Processing. 2 Contents Markup XML DTDs XML Parsers DOM.
HTML part 2. HTML File Formats HTML 3.2 HTML 5.0 HTML Transitional HTML Frameset HTML Strict XHTML 1.0 Transitional XHTML 1.0 Frameset.
1 Dr Alexiei Dingli XML Technologies SAX and DOM.
Markup basics. Markup languages add commentary to text files –so that the commentary can be ignored if not understood eg HyperText Markup Language –adds.
1 Javascript DOM Peter Atkinson. 2 Objectives Understand the nature and structure of the DOM Add and remove content from the page Access and change element.
Martin Kruliš by Martin Kruliš (v1.1)1.
DOM (Document Object Model) - Parsing and Reading HTML and XML -
AJAX. Ajax  $.get  $.post  $.getJSON  $.ajax  json and xml  Looping over data results, success and error callbacks.
Dave Salinas. What is XML? XML stands for eXtensible Markup Language Markup language, like HTML HTML was designed to display data, whereas XML was designed.
JS: Document Object Model (DOM) DOM stands for Document Object Model, and allows programmers generic access to: DOM stands for Document Object Model, and.
SEMI-STRUCTURED DATA (XML) 1. SEMI-STRUCTURED DATA ER, Relational, ODL data models are all based on schema Structure of data is rigid and known is advance.
JQUERY AND AJAX
XML Introduction to XML Extensible Markup Language.
XML Notes taken from w3schools. What is XML? XML stands for EXtensible Markup Language. XML was designed to store and transport data. XML was designed.
XML CS What is XML?  XML: a "skeleton" for creating markup languages  you already know it!  syntax is identical to XHTML's: content  languages.
Extensible Markup Language (XML) Pat Morin COMP 2405.
XML intro. What is XML? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display.
XML BASICS and more…. What is XML? In common:  XML is a standard, simple, self-describing way of encoding both text and data so that content can be processed.
CSE 154 LECTURE 13: XML AND JSON. Debugging responseXML in Firebug can examine the entire XML document, its node/tree structure.
THE DOM.
CSE 154 Lecture 12: XML.
AJAX and JSON Day 8.
CSE 154 Lecture 13: XML and JSON.
CSE 154 Lecture 11: AJAx.
CHAPTER 5 DOCUMENT OBJECT MODEL
XML in Web Technologies
CSE 154 Lecture 24: JSON.
The XML Language.
Prepared for Md. Zakir Hossain Lecturer, CSE, DUET Prepared by Miton Chandra Datta
CSE 154 Lecture 11: AJAx.
DOM Document Object Model.
CSE 154 Lecture 22: AJAX.
What is XML?.
Lecture 12: The Fetch Api and AJAx
Lecture 12: The Fetch Api and AJAx
CSc 337 Lecture 13: JSON.
Introduction to AJAX and JSON
CSc 337 Lecture 13: JSON.
XML: The new standard -Eric Taylor.
Presentation transcript:

CSE 154 Lecture 12: XML

Storing structured data in arbitrary text formats (bad) My note: BEGIN FROM: Alice Smith (alice@example.com) TO: Robert Jones (roberto@example.com) SUBJECT: Tomorrow's "Birthday Bash" event! MESSAGE (english): Hey Bob, Don't forget to call me this weekend! PRIVATE: true END XML Many apps make up their own custom text format for storing structured data. We could also send a file like this from the server to browser with Ajax. What's wrong with this approach?

XML: A better way of storing data <?xml version="1.0" encoding="UTF-8"?> <note private="true"> <from>Alice Smith (alice@example.com)</from> <to>Robert Jones (roberto@example.com)</to> <subject>Tomorrow's "Birthday Bash" event!</subject> <message language="english"> Hey Bob, Don't forget to call me this weekend! </message> </note> XML eXtensible Markup Language (XML) is a format for storing nested data with tags and attributes essentially, it's HTML, but you can make up any tags and attributes you want lots of existing data on the web is stored in XML format

Anatomy of an XML file <?xml version="1.0" encoding="UTF-8"?> <!-- XML prolog --> <note private="true"> <!-- root element --> <from>Alice Smith (alice@example.com)</from> <to>Robert Jones (roberto@example.com)</to> <subject>Tomorrow's "Birthday Bash" event!</subject> <message language="english"> Hey Bob, Don't forget to call me this weekend! </message> </note> XML begins with an <?xml ... ?> header tag (prolog) has a single root element (in this case, note) tag, attribute, and comment syntax is just like HTML

Uses of XML XML data comes from many sources on the web: web servers store data as XML files databases sometimes return query results as XML web services use XML to communicate XML is the de facto universal format for exchange of data XML languages are used for music, math, vector graphics popular use: RSS for news feeds & podcasts

What tags are legal in XML? any tags you want! examples: a library might use tags book, title, author a song might use tags key, pitch, note when designing XML data, you choose how to best represent the data large or complex pieces of data become tags smaller details and metadata with simple types (integer, string, boolean) become attributes <measure number="1"> <attributes> <divisions>1</divisions> <key><fifths>0</fifths></key> <time><beats>4</beats></time> <clef> <sign>G</sign><line>2</line> </clef> </attributes> <note> <pitch> <step>C</step> <octave>4</octave> </pitch> <duration>4</duration> <type>whole</type> </note> </measure> XML

XML and Ajax web browsers can display XML files, but often you instead want to fetch one and analyze its data the XML data is fetched, processed, and displayed using Ajax (XML is the "X" in "Ajax") It would be very clunky to examine a complex XML structure as just a giant string! luckily, the browser can break apart (parse) XML data into a set of objects there is an XML DOM, similar to the HTML DOM

Fetching XML using Ajax (template) var ajax = new XMLHttpRequest(); ajax.onload = functionName; ajax.open("GET", url, true); ajax.send(); ... function functionName() { do something with this.responseXML; } XML this.responseText contains the data in plain text (a string) this.responseXML is a parsed XML DOM tree object it has methods very similar to HTML DOM objects

Interacting with XML DOM nodes To get an array of nodes: var elms = node.getElementsByTagName("tag"); var elms = node.querySelectorAll("selector"); // all elements var elm = node.querySelector("selector"); // first element XML To get the text inside of a node: var text = node.textContent; // or, var text = node.firstChild.nodeValue; XML To get the value of a given attribute on a node: var attrValue = node.getAttribute("name"); XML

Differences from HTML DOM Don't usually use getElementById because XML nodes don't have IDs or classes. var div = document.getElementById("main"); JS Can't get/set the text inside of a node using innerHTML: var text = div.innerHTML; JS Can't get an attribute's value using .attributeName: var imageUrl = document.getElementById("myimage").src; JS

Ajax XML DOM example <?xml version="1.0" encoding="UTF-8"?> <employees> <lawyer money="99999.00" /> <janitor name="Ed"> <vacuum model="Hoover" /> </janitor> <janitor name="Bill">no vacuum, too poor</janitor> </employees> XML // how much money does the lawyer make? var lawyer = this.responseXML.querySelector("lawyer"); var salary = parseFloat(lawyer.getAttribute("money")); // 99999.0 // array of 2 janitors var janitors = this.responseXML.querySelectorAll("janitor"); var vacModel = janitors[0].querySelector("vacuum").getAttribute("model"); var excuse = janitors[1].textContent; // "no vacuum, too poor" How would we find out the first janitor's name? (use the Console) How would we find out how many janitors there are? How would we find out how many janitors have vs. don't have vacuums?

Exercise: Animal game Write a program that guesses which animal the user is thinking of. The program will arrive at a guess based on the user's responses to yes or no questions. The questions come from a web app named animalgame.php.

Practice problem: Animal game (cont'd) The data comes in the following format: <node nodeid="id"> <question>question text</question> <yes nodeid="id" /> <no nodeid="id" /> </node> XML <node nodeid="id"> <answer>answer text</answer> </node> XML to get a node with a given id: animalgame.php?nodeid=id start by requesting the node with nodeid of 1 to get the first question

Attacking the problem Questions we should ask ourselves: How do I retrieve data from the web app? (what URL, etc.) Once I retrieve a piece of data, what should I do with it? When the user clicks "Yes", what should I do? When the user clicks "No", what should I do? How do I know when the game is over? What should I do in this case?

Debugging responseXML in Firebug can examine the entire XML document, its node/tree structure

Full list of XML DOM properties nodeName, nodeType, nodeValue, attributes firstChild, lastChild, childNodes, nextSibling, previousSibling, parentNode methods: getElementById, getElementsByTagName, querySelector, querySelectorAll, getAttribute, hasAttribute,hasChildNodes appendChild, insertBefore, removeChild, replaceChild full reference

Schemas and Doctypes "rule books" describing which tags/attributes you want to allow in your data used to validate XML files to make sure they follow the rules of that "flavor" the W3C HTML validator uses an HTML schema to validate your HTML (related to <!DOCTYPE html> tag) these are optional; if you don't have one, there are no rules beyond having well- formed XML syntax for more info: W3C XML Schema Document Type Definition (DTD) ("doctype")

Exercise: Late day distribution Write a program that shows how many students turn homework in late for each assignment. Data service here: http://webster.cs.washington.edu/cse154/hw/hw.php parameter: assignment=hwN