Help:COAP-3180/week5: Difference between revisions
Jump to navigation
Jump to search
Line 28: | Line 28: | ||
* Install "Formidable" if not already done so | * Install "Formidable" if not already done so | ||
** Best method is to click on ''Plugins'' in the Dashboard | ** Best method is to click on ''Plugins'' in the Dashboard | ||
** Else, use the | ** Else, use the [http://wordpress.org/extend/plugins/formidable/installation/ "manual" method] described by its developer. | ||
'''(3) Produce XML output from an SQL query with php | '''(3) Produce XML output from an SQL query with php |
Revision as of 09:51, 8 February 2010
Week 5 - COAP 3180
Topics Covered
- Homework and mid-term exam
- Quick feedback
- Termproject
- Each student should now have a "must-have" and "nice-to-have" list of features
- Demonstration of the Wordpress extension "Formidable"
- Crashcourse on XML
- XML - The formalism
- XML - where is it used
- XSLT - XML transformations
- XPath - identify elements in a tree (used by XPath and XQuery)
Classroom activities
(1) Term project
- Must have and nice to have features
- Remark: There must an embedded "database", i.e. a data-collection / presentation module
(2) Wordpress
- Fire up MoWes and enter wordpress as admin
- Install "Formidable" if not already done so
- Best method is to click on Plugins in the Dashboard
- Else, use the "manual" method described by its developer.
(3) Produce XML output from an SQL query with php
- copy this code to a mowes/web/ directoty
- call it for example: mysql-to-xml.php
- configure and test
<?php
error_reporting(E_ALL);
// --------------------------- Configuration section
// Fill in according to your db settings
// Make sure to keep the ; and the ""
$host = "localhost";
$user = "root";
$pass = "";
$database = "exam";
// replace by a real *.xsl file, e.g.
// $xslt_file = "exam.xsl";
$xslt_file = FALSE;
// Replace by a query that matches your database
$SQL_query = "SELECT * FROM question,response_item WHERE question.id = response_item.id_question";
// -------------------------- no changes needed below
$DB_link = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_select_db($database, $DB_link) or die ("Could not find or access the database.");
$result = mysql_query ($SQL_query, $DB_link) or die ("Data not found. Your SQL query didn't work... ");
if ($xslt_file) {
header("Content-type: text/xml");
$XML = "<?xml version=\"1.0\"?>\n";
$XML .= "<?xml-stylesheet href=\"$xslt_file\" type=\"text/xsl\" ?>";
$XML .= "<result>\n";
}
else {
$XML = "Don't forget to create an XSLT file .... <p>";
$XML .= "<pre>\n";
$XML .= "<result>";
}
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$XML .= "\t<row>\n";
$i = 0;
foreach ($row as $cell) {
// Escaping illegal characters
$cell = str_replace("&", "&", $cell);
$cell = str_replace("<", "<", $cell);
$cell = str_replace(">", ">", $cell);
$cell = str_replace("\"", """, $cell);
$col_name = mysql_field_name($result,$i);
if ($xslt_file)
$XML .= "\t\t<$col_name>" . $cell . "</$col_name>\n";
else
$XML .= "\t\t<$col_name>" . $cell . "</$col_name>\n";
$i++;
}
$XML .= "\t</row>\n";
}
echo $XML;
if (!$xslt_file) {
echo "</result>";
echo "</pre>";
}
else
echo "</result>";
?>
(4) Edit an XML file (Wednesday)
(5) Modify an XSLT file
- Filter data with XSLT
Homework 5
Details to be announced on Wednesday ...
- Pull out data in XML format from a database
- Produce an XSLT file that will display the data (any maybe do some filtering)
- Associate the XSLT file either server-side or client side.
The instructor will provide a php file that does the extraction.
Submission Dates
- This homework is due at start of wed week 6
- Students must provide the URL (where the instructor can see the widget) in the world classroom
- Each homework counts 10% in your global evaluation. The four best homeworks will be taken into account.
Evaluation
Tips for the homework
Links and teaching materials
- Software
- A good XML editor, e.g. XML exchanger light
- Online software
- none
- Teaching materials
- XML (exam topic, must know)
- DTD tutorial (understand how to use/read a DTD only)
- XSLT Tutorial - Basics (exam topic, must know)
- XPath tutorial - basics (exam topic, must know)
- XQuery tutorial - basics (week 6 preview, exam topic, must know)
- PHP-MySQL tutorial -basics (in particular the section about XML output)
- Teaching materials (older slides)
- http://tecfa.unige.ch/guides/te/files/xml-intro-edit.pdf
- http://tecfa.unige.ch/guides/te/files/xml-ns.pdf (optional)
- http://tecfa.unige.ch/guides/te/files/xslt-basics.pdf
- Optional reading
- Donald Bourret (2005). XML and Databases, http://www.rpbourret.com/xml/XMLAndDatabases.htm
- Darshan Singh, Essential XQuery - The XML Query Language, http://www.yukonxml.com/articles/xquery/
- XQuery http://en.wikipedia.org/wiki/XQuery (Wikipedia)