140 likes | 315 Views
ISD3. Semester 2. Review. 3 tier web architecture – describe, explain, terminology, typical interactions SQL & PHP Extended ER models Interaction in human and computer systems – sequence diagrams, state-full interaction
E N D
ISD3 Semester 2
Review • 3 tier web architecture – describe, explain, terminology, typical interactions • SQL & PHP • Extended ER models • Interaction in human and computer systems – sequence diagrams, state-full interaction • Alternative Development Processes –Agile Development and Extreme Programming – description, application, comparison with SSADM, choice of appropriate development model • Frames – rationale, role in IS development, basic recognition in a problem description of simple frames and the following in detail • Matching Frame – typical applications, fitness function, recognising nominal, ordinal, interval and ratio scales, use of weights • Classification Frame – typical applications, terminology, calculation of recall and precision, guidelines for constructing a taxonomy
XML • Tagged data <h1>Hello</h1> <module code=“UFIE8K” level=“3”> <review id=“fred>A really interesting course, well taught</review> </module> • Interchange of data • RSS, BPEL4WS, RossettaNet … • Structure document representation • Module specifications • Languages • XSLT, XSchema, Soap
XML – a sample system Browser CSS process Client Server XSLT process Stores XML, XQuery,XSLCSS and binary files (JPEG) XQuery process Native XML Database eXist Java
Example – Family History Person Photo age Name: string Image: jpeg Description: string Date: date Media: string Inscription: string Event Date : date Place Birth Death Marriage Address : string Lat: decimal Long: decimal
Many-many resolution in XML <photo id="2"> <medium>B/W photograph</medium> <description>Family sitting round the fireplace</description> <subject> <person>Robin Wallace</person> </subject> <subject> <person>Kenneth Wallace</person> </subject> <subject> <age>12</age> <person>Francis Wallace</person> </subject> <subject> <animal>Cat</animal> </subject> <subject> <person>Miss Whitfield</person> </subject> <place> <address>Claremont, Brows Lane, Formby</address> <long>-3.06608</long> <lat>53.55555</lat> </place> </photo> Photo Image: jpeg Description: string Date: date Media: string Inscription: string (Subject: ( Person: name Age: integer) | Animal : name )* Place: (address, lat, log) | name
Example – Events child Person Birth father Name: string mother <event> <class>Birth</class> <person>Francis Wallace</person> <date>1911-04-26</date> <father> <person>Kenneth Wallace</person> </father> <mother> <person>Ida Wallace</person> </mother> <place>New Brighton</place> </event> Event Date : date Death Marriage
xquery version "1.0"; (: List events for a person :) declare namespace request="http://exist-db.org/xquery/request"; declare namespace transform = "http://exist-db.org/xquery/transform"; let $person := request:request-parameter('person',''), (: get the seet of events in which this person is involved :) $events := document(/'db/history/events.xml')/eventList/event[.//person = $person], (: get the stylesheet :) $ss := document('/db/history/eventList.xsl'), (: set the 'focus' of the event list to the person :) $params := <parameters> <param name="focus" value="{$person}"/> </parameters>, (: order the events in ascending date order :) $elist := <eventList> {for $e in $events order by $e/date return $e } </eventList> return (: return the event list transformed by the stylesheet :) transform:transform($elist,$ss,$params) XQuery
XSLT <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:param name="focus"/> <xsl:output method="html"/> <xsl:template match="/"><!-- apply at top level of xml doc --> <html> <head> <link rel="stylesheet" href="photos.css" type="text/css"/> <title>Event List</title> </head> <body> <h2> <xsl:value-of select="$focus"/> </h2> <xsl:apply-templates/> </body> </html> </xsl:template>
XSLT … xsl:template match="eventList"> <xsl:apply-templates/> <hr/> </xsl:template> <xsl:template match="event[class='Birth'][person = $focus]"> <h3> <xsl:value-of select="date"/> : Born at <xsl:value-of select="place"/> </h3> <p>Father <xsl:value-of select="father/person"/>, Mother <xsl:value-of select="mother/person"/> </p> </xsl:template> <xsl:template match="event[class='Birth'][father/person = $focus]"> <h3> <xsl:value-of select="date"/> : Child <xsl:value-of select="person"/> born at <xsl:value-of select="place"/> </h3> <p> Mother <xsl:value-of select="mother/person"/> </p> </xsl:template>
References • Hunter et al (2004), Beginning XML (3rd Ed) WROX (Wiley) • O’Reilly books for XSLT, XHTML, CSS • W3schools tutorials
Tutorial next week • Classification • Taxonomy and controlled vocabularies (in XML) • Help in understanding the basics of the history application