====== eXtensible Markup Language (XML) ======
===== Before the lab =====
Reading:
* [[http://www.w3schools.com/xml/xml_whatis.asp|XML]]
* [[http://www.w3schools.com/dtd/default.asp|DTD]]
* [[http://www.w3schools.com/schema/default.asp|XSD]]
* [[http://www.w3schools.com/xpath/default.asp|XPath]]
* [[http://www.w3schools.com/xml/xml_xsl.asp|XSL]]
* [[#if_you_want_to_know_more|If you want to know more...]]
===== Introduction =====
Lectures:
* {{http://home.agh.edu.pl/~wta/semweb/geist-semweb-uri.pdf|Semantic Web: 1.5 - Unicode and URI}}
* {{http://home.agh.edu.pl/~wta/semweb/geist-semweb-xml.pdf|Semantic Web: 2 - XML}}
===== Lab instructions =====
The lab is divided into sections. You should allow aprox. 10 minutes for each section.
However, note that the tasks are increasingly difficult and latter sections may be more time-consuming than the former ones.
==== - Warm-up: Well-formedness of the XML ====
8-) Determine which of the following XML documents is well-formed. If a document is well-formed,
show its corresponding tree model. If it is not well-formed, explain why not. You may assume that all
of these documents are intended to be XML 1.0 documents, and thus the declaration is not needed.
//NOTE: Assume that the prolog of the documents is present and the following lines are the body of the document//.\\
-
- foobar
- foobar
- foobar
- foobar
- foobazbar
- foo
- foo
- foo
- foobar
==== - Creating XML document ====
8-) Modify the code below to describe the best book from your bookshelf:
Grigoris Antoniou
Frank van Harmelen
A Semantic Web Primer
2008-10-09
The MIT Press
* You can modify the markup and hierarchy.
==== - DTD ====
* Using a text editor, define a [[http://www.w3schools.com/dtd/default.asp|DTD]] definition for your XML syntax. Put it in the report 8-)
* You can define DTD definition inside XML file: \\
XML content
==== - Validating XML with DTD ====
* Test your XML against defined DTD using [[http://www.xmlvalidation.com/index.php|online validator]] - **it requires embedded DTD**. \\ or
* You can also test your XML using //xmlstarlet// command: \\ Testing xml file against external DTD definition file use:
xmlstarlet val -e -d file.dtd file.xml
or when you use embeded DTD definition use:
xmlstarlet val -e -E file.xml
==== - XSD ====
* Using a text editor, define an [[http://www.w3schools.com/schema/default.asp|XSD]] definition for your XML syntax. Put it in the report 8-)
==== - Validating XML with XSD ====
* Test your XML against defined XSD using:
* using //xmlstarlet// command:
xmlstarlet val -e -s file.xsd file.xml
\\ or
* [[http://tools.decisionsoft.com/schemaValidate|XSD online validator]] \\ or
* [[http://www.xmlme.com/Validator.aspx|XML Schema Validator]]
==== - XPath ====
* Go to the [[http://www.xmlme.com/XpathTool.aspx|XPath Tool]]
* Paste your XML code in the prepared tesxtfield
* Build and test the XPathc for the following:
* find the lastnames of all students,
* find all lastnames of members from a given group,
* find an address of the second member from a given group,
* find all the cities of all members,
* find all the students which are older/younger than a given age,
* find a lastname of your group leader.
* Put the queries in the report 8-)
==== - XSLT: XML -> HTML ====
* Go to the W3Schools' [[http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog|online XSLT editor]].
* Paste your XML code in the left textarea
* Modify the XSLT code in the right text area to display your data in a table. Make experiments.
===== Control questions =====
* What are the required elements of XML file?
* What is an empty element?
* Does the XML have any predefined tags?
* How to define a comment?
* Is the XML platform dependent?
* What is a CDATA section in XML file?
* What is the meaning of the colon within tag name?
* What is the DTD?
* What is the XSD?
* Which language (DTD or XSD) is more expressive?
* What is the XPath?
* Does the XPath allow for nested queries?
* What is XSLT for?
* How does the XSLT work?
===== If you want to know more =====
* [[http://www.w3.org|www.w3.org]]
* [[http://validator.w3.org|validator.w3.org]]
* [[http://www.xml.org|www.xml.org]]
* [[http://www.xml.com|www.xml.com]]
* [[http://xml.coverpages.org|xml.coverpages.org]]
* [[http://www.w3schools.com/|www.w3schools.com]]
* [[http://www.ibm.com/developerworks/xml|www.ibm.com/developerworks/xml]]
* [[http://xml.oreilly.com/xml|xml.oreilly.com]]
* [[http://developer.mozilla.org/en/docs/Main_Page|Mozilla Developer Center]]
* xml schemas: [[http://www.ibm.com/developerworks/library/x-schematips/?ca=dgr-lnxw07x-schematips&S_TACT=105AGX59&S_CMP=GRsitelnxw07|Ten XML schemas you should know]]
* CSS: [[http://meyerweb.com/eric/css/|Eric Meyer]]