95-733 Internet Technologies Spring 2015
Homework 2
Due Date : 11:59 PM, Tuesday, February 10, 2015
Lab Topics: XML, the Extensible Style Sheet Language for Transformations XSLT,
Atom, and RSS
The actual homework begins at Part 6. Parts 1 - 5 are for instruction only. It
is strongly recommended that you work through parts 1 - 5.
In this lab we will be programming in a transformation language called
XSLT. XSLT is used to transform one XML document into another XML document
(with a different structure). In order to write programs in XSLT, we
need an XML parser (XSLT programs are XML documents) and an XSLT
interpreter. The parser is called "Xerces". The interpreter is called
"Xalan" (Xalan uses Xerces).
The required jar files for XSLT processing using Xalan are : xalan.jar,
xercesImpl.jar, xml-apis.jar and xsltc.jar and serializer.jar. These may
be downloaded from the Apache Foundation.
Part 1 Command Line XSLT
========================
For DOS based machines, create a directory called "bats" and place
a batch file called "xalan.bat" in that directory. Place the path
to your bats directory in the system path variable.
I recommend that you actually type the xalan.bat file into
a text editor. The copy and paste approach has been troublesome.
The file xalan.bat will hold the following:
java org.apache.xalan.xslt.Process -IN %1 -XSL %2 -OUT %3
This java command will run the code in the Process class.
You will need to have the jar files mentioned above on your classpath
before running xalan.bat.
For Unix based machines, you will use a script file called xalan with
execute permissions. My xalan jar files are saved in
/Users/mm6/Applications/xalan.
My xalan script is shown below.
#!/bin/sh
export XALAN_HOME=/Users/mm6/Applications/xalan
export CP=$XALAN_HOME/xalan.jar:$XALAN_HOME/xercesImpl.jar:$XALAN_HOME/xml-
apis.jar:$XALAN_HOME/xsltc.jar:$XALAN_HOME/serializer.jar
java -classpath $CP org.apache.xalan.xslt.Process -IN $1 -XSL $2 -OUT $3
Testing. The following is an xml file called books.xml that contains data
on books. It's a copy of the file found on Page 70 of the XSLT Programmer's
Reference by Michael Kay.
Nigel ReesSayings of the Century8.95Evelyn WaughSword of Honour12.99Herman MelvilleMoby Dick8.99J. R. R. TolkienThe Lord of the Rings22.99
We would like to transform this file into an HTML document as shown here (result.html):
A list of books
1
Nigel Rees
Sayings of the Century
8.95
2
Evelyn Waugh
Sword of Honour
12.99
3
Herman Melville
Moby Dick
8.99
4
J. R. R. Tolkien
The Lord of the Rings
22.99
In order to carry out this transformation, we will use the XSLT
programming language. While it is the case that XSLT is Turing
complete, that is, we can solve a wide variety of problems using
XSLT, it is especially good at performing XML transformations.
Our first XSLT program looks like this (booklist.xsl):
A list of books
Place the two files (books.xml and booklist.xsl) into a directory
and make sure that xalan is working properly by running the
following command. The output file should look like result.html.
xalan books.xml booklist.xsl result.html
When debugging XSLT programs, it is often much more helpful to
view your output in an editor like Notepad rather than to view
your output in a browser like Firefox or IE or Safari. Look at
the HTML document in a browser only after you are satisfied
with the way it looks in Notepad. The browser view is often
quite deceiving and makes a poor debugging tool.
Part 2 Handling Namespaces
==========================
Many documents make use of XML namespaces to remove ambiguity.
The following is our books example with a namespace assigned to
the namespace prefix p.
Nigel ReesSayings of the Century8.95Evelyn WaughSword of Honour12.99Herman MelvilleMoby Dick8.99J. R. R. TolkienThe Lord of the Rings22.99
The same XSLT program that we wrote above needs to be adapted
to handle these namespace qualified elements. Be sure to test
this new program against the books file with namespaces.
A list of books
Part 3 Running Xalan from within Java
============================================
While command line xalan makes a very nice tool, it is
often necessary to make calls for XSLT processing from
within other programs. Here is a Java program that
performs the same transformation as above. But this
time the transformation is performed under application
program control.
This program would be executed with the command:
java ProduceHTML books.xml booklist.xsl result.html
// ProduceHTML.java is a simple program that demonstrates how XSLT programs
// can be executed from within Java.
import java.io.IOException;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.Result;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
public class ProduceHTML {
public static void main(String a[] ) {
Source xmlDoc, xslDoc;
Result result;
try {
FileInputStream xml = new FileInputStream(a[0]);
FileInputStream xsl = new FileInputStream(a[1]);
FileOutputStream out = new FileOutputStream(a[2]);
xmlDoc = new StreamSource(xml);
xslDoc = new StreamSource(xsl);
result = new StreamResult(out);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer trans = factory.newTransformer(xslDoc);
trans.transform(xmlDoc,result);
}
catch(TransformerException e) {
System.out.println("Transformer Probem" + e);
}
catch(IOException e) {
System.out.println("An I/O problem");
}
}
}
Part 3.5 Passing parameters from Java into an XSLT program
==========================================================
The Java example in Part 3 simply executes the XSLT and tells
XSLT program what its input and output is. There are times where we
want to pass values into the XSLT program at run time.
Just prior to calling trans.transform(xmlDoc, result) we can
do the following:
trans.setParameter("Some_name", "Some string with data");
Within the XSLT, we can do the following:
This assigns to Some_name the value passed in - "Some string with data".
To access the data, we would use $Some_name to dereference the parameter.
Part 4. Running XSLT from within a Java servlet.
================================================
Suppose we want to use a local stylesheet called
XSLTransformerCode.xsl to process a remote XML file
at some URL.
Using Netbeans and Glassfish, add the xsl
stylesheet file to the project's Web Pages folder.
A doGet method might have the following code:
PrintWriter out = response.getWriter();
// get the xsl stored in this project
ServletContext context = getServletContext();
InputStream xsl = (InputStream)
(context.getResourceAsStream("/XSLTransformerCode.xsl"));
// We need two source objects and one result
// get an external xml document using a url in a
// string format
Source xmlDoc = new StreamSource(urlAsString);
Source xslDoc = new StreamSource(xsl);
Result result = new StreamResult(out);
// Prepare to transform
TransformerFactory factory = TransformerFactory.newInstance();
Transformer trans = factory.newTransformer(xslDoc);
trans.transform(xmlDoc,result);
// The transformed document is returned to the browser.
Part 5. An Atom document from the W3C
=====================================
The following document was accessed from the W3C's main
web page by clicking on the syndicate link. It is meant to
be read by a news reader. We will use it as our input file
for the homework problems below.
The current W3C feed may be accessed here:
http://www.w3.org/blog/news/feed/atom
W3C NewsLeading the Web to its Full Potential2015-01-21T16:50:28Zhttp://www.w3.org/blog/news/feed/atomWordPressCoralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43242015-01-21T16:50:28Z2015-01-21T16:31:45Z]]>W3C announced today a new Web of Things initiative to develop Web standards for enabling open markets of applications and services based upon connected sensors and actuators (the Internet of Things) and the Web of data. Open standards will be essential to realising the huge potential. We invite you to join the new Web of Things Interest Group and drive work on use cases, requirements, and best practices. The aim is to build a shared vision and identify specific opportunities for standardization.
So far work on the Internet of Things has focused on the sensors and actuators and the associated communication technologies. Comparatively little attention has been given to what is needed for services to break free of today’s product silos. Web technologies are considered to be very promising, including the role of scripting languages like JavaScript for defining services. However, there is considerable work left to do to support discovery and interoperation of services, along with attention to security, privacy, accessibility and resilience in the face of faults and attacks.
The potential if we get this right is huge and will greatly expand the scale of the Web. Please join us to help address the many challenges.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43222015-01-20T15:14:55Z2015-01-20T15:14:55Z]]>The Web Performance Working Group has published a First Public Working Draft of Frame Timing. This specification defines an interface to help web developers measure the performance of their applications by giving them access to frame performance data to facilitate smoothness (i.e. Frames per Second and Time to Frame) measurements. Learn more about the Rich Web Client Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43202015-01-20T14:36:24Z2015-01-20T14:36:24Z]]>The Web Performance Working Group has published a Working Draft of Navigation Timing 2. This specification defines a unified interface to store and retrieve high resolution performance metric data related to the navigation of a document. Learn more about the Rich Web Client Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43182015-01-15T18:58:40Z2015-01-15T18:58:40Z]]>The Cascading Style Sheets (CSS) Working Group has published two documents today:
A First Public Working Draft of CSS Pseudo-Elements Module Level 4. This CSS module defines pseudo-elements, abstract elements that represent portions of the CSS render tree that can be selected and styled.
A Working Draft of CSS Exclusions Module Level 1. CSS Exclusions define arbitrary areas around which inline content can flow. CSS Exclusions can be defined on any CSS block-level elements. CSS Exclusions extend the notion of content wrapping previously limited to floats.
CSS is a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, in speech, etc. Learn more about the Style Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43142015-01-15T18:51:03Z2015-01-15T18:51:03Z]]>The IndieUI Working Group today published an updated Working Draft of IndieUI: Events 1.0 – Events for User Interface Independence. This draft includes new events and a refined technical model. IndieUI: Events defines a way for different user interactions to be translated into simple events and communicated to Web applications. (For example, if a user wants to scroll down a page, they might use their finger on a touch screen, or click a scroll bar with a mouse, or use a scroll wheel, or say ‘scroll down’ with a voice command. With IndieUI, these are all sent to the Web app as simply: scroll down.) IndieUI will make it easier for Web applications to work in a wide range of contexts — different devices (such as mobile phones and tablets), different assistive technologies (AT), different user needs. With IndieUI, Web application developers will have a uniform way to design applications that work for multiple devices and contexts. Comments on this Draft are encouraged by 13 February 2015. Learn more from the IndieUI Overview and the Updated Working Draft: IndieUI Events e-mail; and read about the Web Accessibility Initiative (WAI).
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43122015-01-15T18:42:21Z2015-01-15T18:39:06Z]]>The Web Applications Working Group and the Technical Architecture Group have published a First Public Working Draft of Packaging on the Web. This document describes an approach for creating packages of files for use on the web. The approach is to package them using a new application/package media type. To access packages related to other files on the web, clients that understand packages of files look for a Link header or (in HTML documents) a <link> element with a new link relation of package. Other formats may define format-specific mechanisms for locating related packages. Learn more about the Rich Web Client Activity and the Technical Architecture Group.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=43082015-01-20T15:16:06Z2015-01-13T16:04:38Z]]>The Cascading Style Sheets (CSS) Working Group and the SVG Working Group invite implementation of the updated Candidate Recommendation of Compositing and Blending Level 1. Compositing describes how shapes of different elements are combined into a single image. There are various possible approaches for compositing. Previous versions of SVG and CSS used Simple Alpha Compositing. In this model, each element is rendered into its own buffer and is then merged with its backdrop using the Porter Duff source-over operator. This specification will define a new compositing model that expands upon the Simple Alpha Compositing model by offering: additional Porter Duff compositing operators; advanced blending modes which allow control of how colors mix in the areas where shapes overlap; compositing groups. In addition, this specification will define CSS properties for blending and group isolation and the properties of the ‘globalcompositeoperation’ attribute as defined in HTML Canvas 2D Context, Level 2. Learn more about the Style Activity and the Graphics Activity.
]]>0Ian Jacobshttp://www.w3.org/People/Jacobs/http://www.w3.org/blog/news/?p=43042015-01-21T16:40:48Z2015-01-09T18:38:53Z]]>The W3C Advisory Committee has elected the following people to the W3C Technical Architecture Group (TAG): Travis Leithead (Microsoft),
Mark Nottingham (Akamai), Alex Russell (Google), and Yan Zhu (Yahoo!). They join continuing participants Daniel Appelquist (Telefónica; co-Chair), David Herman (Mozilla Foundation), and Peter Linss (HP; co-Chair), as well as co-Chair Tim Berners-Lee. One seat remains to be appointed.
W3C thanks those TAG participants whose terms end this month for their contributions: Jeni Tennison (ODI), Sergey Konstantinov (Yandex), Domenic Denicola (Google), and Yehuda Katz (jQuery Foundation).
The mission of the TAG is to build consensus around principles of Web architecture and to interpret and clarify these principles when necessary, to resolve issues involving general Web architecture brought to the TAG, and to help coordinate cross-technology architecture developments inside and outside W3C. Learn more about the TAG.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42982015-01-20T14:31:30Z2015-01-08T18:31:31Z]]>The Web Applications Working Group has published a W3C Recommendation of Indexed Database API. This document defines APIs for a database of records holding simple values and hierarchical objects. Each record consists of a key and some value. Moreover, the database maintains indexes over records it stores. An application developer directly uses an API to locate records either by their key or by using an index. A query language can be layered on this API. An indexed database can be implemented using a persistent B-tree data structure. Learn more about the Rich Web Client Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42932015-01-15T17:55:29Z2015-01-08T18:04:44Z]]>The Digital Publishing Interest Group has published a Group Note of DPUB IG Metadata Task Force Report. The Metadata Task Force of the DPUB IG found, through extensive interviews with representatives of various sectors and roles within the publishing ecosystem, that there are numerous pain points for publishers with regard to metadata but that these pain points are largely not due to deficiencies in the Open Web Platform. Instead, there is a widespread lack of understanding or implementation of the technologies that the OWP already makes available for addressing most of the issues raised. However, some of the very technologies that are little used or understood in most sectors of publishing are widely used and understood in certain other sectors (e.g., scientific publishing, libraries). Priorities that have emerged are the need for better understanding of the importance of expressing identifiers as URIs; the need for much more widespread use of RDF and its various serializations throughout the publishing ecosystem; and the need to develop a truly interoperable, cross-sector specification for the conveyance of rights metadata (while remaining agnostic as to the sector-specific vocabularies for the expression of rights). This Note documents in detail the issues that were raised; provides examples of available RDF educational resources at various levels, from the very technical to non-technical and introductory; and lists important identifiers used in the publishing ecosystem, documenting which of them are expressed as URIs, and in what sectors and contexts. It recommends that while little new technology is called for, the W3C is in a unique position to bridge today’s currently siloed metadata practices to help facilitate truly cross-sector exchange of interoperable metadata. This Note is thus intended to provide background and a context in which concrete work, whether by this Task Force or elsewhere within the W3C, may be undertaken. Learn more about the Digital Publishing Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42912015-01-15T17:55:20Z2015-01-08T17:51:12Z]]>The CSV on the Web Working Group has published First Public Working Drafts of the Generating JSON from Tabular Data on the Web and the Generating RDF from Tabular Data on the Web documents, and has also issued new releases of the Metadata Vocabulary for Tabular Data and the Model for Tabular Data and Metadata on the Web Working Drafts. A large percentage of the data published on the Web is tabular data, commonly published as comma separated values (CSV) files. Validation, conversion, display, and search of that tabular data requires additional information on that data. The “Metadata vocabulary” document defines a vocabulary for metadata that annotates tabular data, providing such information as datatypes, linkage among different tables, license information, or human readable description of columns. The standard conversion of the tabular data to JSON and/or RDF makes use of that metadata to provide representations of the data for various applications. All these technologies rely on a basic data model for tabular data described in the “Model” document. The Working Group welcomes comments on these documents and on their motivating use cases. Learn more about the Data Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42872015-01-15T17:55:07Z2015-01-06T15:36:10Z]]>The W3C and the Open Geospatial Consortium (OGC) announced today a new collaboration to improve interoperability and integration of spatial data on the Web. Spatial data is integral to many of our human endeavors and so there is a high value in making it easier to integrate that data into Web based datasets and services.
The new Spatial Data on the Web Working Group will work in close collaboration with the Open Geospatial Consortium, in particular, the eponymous OCG’s Spatial Data on the Web Working Group . “Location, as well as providing context to much of today’s online information, is vital to the emerging field of connected devices,” said Ed Parsons, Geospatial Technologist at Google. “Through this collaboration we hope to make the understanding of geospatial knowledge a fundamental component of the Web.”
]]>0Ian Jacobshttp://www.w3.org/People/Jacobs/http://www.w3.org/blog/news/?p=42842015-01-08T17:51:59Z2014-12-23T20:23:25Z]]>Registration is open for new editions of three W3C online courses that begin in early 2015:
JavaScript [Register]. This course runs for 4 weeks starting 26 January 2015. This course provides instruction about JavaScript good practices, tricks, and tools, illustrated through examples and assignments.
HTML5 [Register]. This course runs for 6 weeks, starting 2 February 2015. This course covers video, time based animation, 2D geometric transformations, Web Audio API, Web components and much more.
Responsive Web Design [Register]. This course runs for 5 weeks, starting 6 February 2015. This course leads you step by step through an approach that focuses on HTML and CSS to make your Web site fit in all viewport sizes.
An early bird rate is available to all above courses. Learn more about W3DevCampus, the official W3C online training for Web developers. See also our self-explanatory fun video.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42782015-01-08T17:52:37Z2014-12-18T21:27:42Z]]>Today the XSLT Working Group and the XQuery Working Group jointly published Candidate Recommendations and invite implementation of XPath 3.1 and supporting documents. The XQuery Working Group published Candidate Recommendations and invites implementation of XQuery 3.1 and XQueryX 3.1. The supporting documents are XPath Functions and Operators; XQuery and XPath Data Model. XQuery 3.1 and XPath 3.1 introduce improved support for working with JSON data with map and array data structures as well as loading and serializing JSON; additional support for HTML class attributes, HTTP dates, scientific notation, cross-calling between XSLT and XQuery and more. The Serialization specification remains a Last Call Working Draft and was not republished, in order to improve JSON, map and array support in response to a Last Call Comment; it is expected to follow the other documents in the New Year. Learn more about the Extensible Markup Language (XML) Activity
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42762015-01-09T18:18:46Z2014-12-18T20:56:10Z]]>The Cascading Style Sheets (CSS) Working Group has published two documents today:
A First Public Working Draft of CSS Inline Layout Module Level 3. The CSS formatting model provides for a flow of elements and text inside of a container to be wrapped into lines. The formatting of elements and text within a line, its positioning in the inline progression direction, and the breaking of lines are described in CSS Text Module Level 3. This module describes the positioning in the block progression direction both of elements and text within lines and of the lines themselves. This positioning is often relative to a baseline. It also describes special features for formatting of first lines and drop caps. It extends on the model in CSS 2.1.
A Working Draft of CSS Box Alignment Module Level 3. This module contains the features of CSS relating to the alignment of boxes within their containers in the various CSS box layout models: block layout, table layout, flex layout, and grid layout.
CSS is a language for describing the rendering of structured documents (such as HTML and XML) on screen, on paper, in speech, etc. Learn more about the Style Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42742015-01-08T17:52:30Z2014-12-18T20:39:37Z]]>The XML Processing Working Group has published a First Public Working Draft of XProc 2.0: An XML Pipeline Language, together with a Standard Step Library. XProc is an XML pipeline language; that is, a declarative dataflow language used to express steps required to process XML documents, coordinating operations such as querying, validation, inclusion, transformation and sorting. The XProc step library defines names and characteristics for a set of pipeline steps that every XProc processor is expected to support, as well as additional optional steps. Lean more about the XML Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42722015-01-08T17:50:57Z2014-12-18T18:44:43Z]]>An updated version of the Web Accessibility Evaluation Tools List is now available. Web accessibility evaluation tools are software programs or online services that help determine if web content meets accessibility guidelines. Information about features of evaluation tools that help with evaluation is in Selecting Web Accessibility Evaluation Tools. Web accessibility evaluation tool vendors are encouraged to submit information about their tool to the list. Learn more about the Web Accessibility Initiative (WAI).
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42682015-01-09T18:18:36Z2014-12-18T09:31:15Z]]>W3C announced today the eighth MultilingualWeb workshop in a series of events exploring the mechanisms and processes needed to ensure that the World Wide Web lives up to its potential around the world and across barriers of language and culture. To be held 29 April 2015 in Riga, this workshop is made possible by the generous support of the LIDER project. The workshop is part of the Riga Summit 2015 on the Multilingual Digital Single Market (27-29 April). Anyone may attend the workshop and the summit at no charge and the W3C welcomes participation by both speakers and non-speaking attendees. Early registration is encouraged due to limited space.
Building on the success of seven highly regarded previous workshops, this workshop will emphasize new technology developments that may lead to new opportunities for the Multilingual Web. The workshop brings together participants interested in the best practices and standards needed to help content creators, localizers, language tools developers, and others meet the challenges of the multilingual Web. It provides further opportunities for networking across communities that span the various aspects involved. We are particularly interested in speakers who can demonstrate novel solutions for reaching out to a global, multilingual audience. Registration is available online.
]]>0Ian Jacobshttp://www.w3.org/People/Jacobs/http://www.w3.org/blog/news/?p=42652015-01-06T15:20:59Z2014-12-16T20:44:20Z]]>Building on the 31 July 2014 announcement of the W3C Social Web Working Group, the OpenSocial Foundation and W3C today announce the transfer of OpenSocial specifications and assets to the W3C. As of 1 January 2015, OpenSocial Foundation will close and future work will take place within the W3C Social Web Activity, chartered to make it easier to build and integrate social applications into the Open Web Platform.
“The consensus of the OpenSocial Board is that the next phase of Social Web Standards, built in large part on the success of OpenSocial standards and projects like Apache Shindig and Rave, should occur under the auspices of the W3C Social Web Working Group, of which OpenSocial is a founding member,” said John Mertic, OpenSocial Foundation President.”
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42592014-12-23T20:19:23Z2014-12-16T18:32:24Z]]>The Pointer Events Working Group has published a Proposed Recommendation of Pointer Events. This document defines events and related interfaces for handling hardware agnostic pointer input from devices including a mouse, pen, touchscreen, etc.. For compatibility with existing mouse based content, this specification also describes a mapping to fire Mouse Events for other pointer device types. Comments are welcome through 16 January 2015. Learn more about the Rich Web Client Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42562014-12-23T20:19:09Z2014-12-16T18:18:13Z]]>The RDFa Working Group is advancing four RDFa 1.1 documents to Proposed Edited Recommendations today:
HTML+RDFa 1.1 – Second Edition. This specification defines rules and guidelines for adapting the RDFa Core 1.1 and RDFa Lite 1.1 specifications for use in HTML5 and XHTML5. The rules defined in this specification not only apply to HTML5 documents in non-XML and XML mode, but also to HTML4 and XHTML documents interpreted through the HTML5 parsing rules.
RDFa Core 1.1 – Third Edition. RDFa Core is a specification for attributes to express structured data in any markup language. The embedded data already available in the markup language (e.g., HTML) can often be reused by the RDFa markup, so that publishers don’t need to repeat significant data in the document content. The underlying abstract representation is RDF, which lets publishers build their own vocabulary, extend others, and evolve their vocabulary with maximal interoperability over time. The expressed structure is closely tied to the data, so that rendered data can be copied and pasted along with its relevant structure.
RDFa Lite 1.1 – Second Edition. RDFa Lite is a minimal subset of RDFa, the Resource Description Framework in attributes, consisting of a few attributes that may be used to express machine-readable data in Web documents like HTML, SVG, and XML. While it is not a complete solution for advanced data markup tasks, it does work for most day-to-day needs and can be learned by most Web authors in a day.
XHTML+RDFa 1.1 – Third Edition. RDFa Core 1.1 defines attributes and syntax for embedding semantic markup in Host Languages. This document defines one such Host Language. This language is a superset of XHTML 1.1, integrating the attributes as defined in RDFa Core 1.1. This document is intended for authors who want to create XHTML Family documents that embed rich semantic markup.
Comments are welcome through 1 February 2015. Learn more about the Data Activity.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42612014-12-23T20:18:59Z2014-12-16T18:06:02Z]]>The Linked Data Platform (LDP) Working Group has published a Proposed Recommendation of Linked Data Platform 1.0. Linked Data Platform (LDP) defines a set of rules for HTTP operations on web resources, some based on RDF, to provide an architecture for read-write Linked Data on the web. Comments are welcome through 8 January 2015.
The group also invites implementation of the Candidate Recommendation of Linked Data Platform Paging 1.0. This document describes a HTTP-based protocol for clients and servers to be able to efficiently retrieve large Linked Data Platform Resource representations by splitting up the responses into separate URL-addressable page resources.
]]>0Coralie Mercierhttp://coraliemercier.wordpress.com/http://www.w3.org/blog/news/?p=42542014-12-18T18:45:29Z2014-12-16T17:59:44Z]]>The XML Core Working Group has published a Last Call Working Draft of XML Inclusions (XInclude) Version 1.1. This document specifies a processing model and syntax for general purpose inclusion. Inclusion is accomplished by merging a number of XML information sets into a single composite infoset. Specification of the XML documents (infosets) to be merged and control over the merging process is expressed in XML-friendly syntax (elements, attributes, URI references). Comments are welcome through 17 January 2015. Learn more about the Extensible Markup Language (XML) Activity.
]]>0
PART 6 Introductory XSLT Programming
====================================
In solving the Atom puzzles below, I used the following in each of my
XSLT programs. Note, Atom uses namespaces.
(1) 2.5 Points. Using command line XSLT, write an XSLT program that displays
the contents of each title that is a direct child of feed/entry.
This list of titles will appear as an HTML unsigned list. No variables
may be used in your style sheet. It will appear something like this
(newlines added for readability):
You will then dereference the variable in the element.
Name your XSLT program "three.xsl".
(4) 10 Points. Using command line XSLT, write an XSLT program that displays
the number of Atom entry elements that appear in the document. You
must use the XSLT count function in your solution. Your output will
be marked up as HTML and will appear in a browser as follows:
Counting Atom entry items
25
Name your XSLT program "four.xsl".
(5) 10 Points. Using command line XSLT, write an XSLT program that displays
the contents of each title that is a direct child of feed/entry.
Your output will be marked up as HTML and will appear in a
browser with the titles underlined as hypertext links. If the user
clicks on a link the browser will fetch the associated document that
is pointed to by the link element. The output on the browser will
appear as follows (in a browser, these show up as clickable links.)
Titles (with links)
W3C Launches Web of Things initiative
First Public Working Draft: Frame Timing
Navigation Timing 2 Draft Published
Name your XSLT program "five.xsl".
(6) 5 Points. Using command line XSLT, write an XSLT program that displays
the contents of each title and the value of the term attribute of each
category associated with that title. The output will be marked up nicely
in HTML. A browser will display something like the following:
Titles and Categories
W3C Launches Web of Things initiative
Browsers and Authoring Tools
Home Page Stories
Top Story
Web Design and Applications
Web of Devices
Web of Services
First Public Working Draft: Frame Timing
Browsers and Authoring Tools
Home Page Stories
Publication
Web Design and Applications
Name your XSLT program "six.xsl".
(7) 2.5 Points. This is the same as question (1) but generate a JSON
object instead of HTML.
When generating JSON, you will need to change your XSLT program so that
its heading looks like this:
The output will look exactly like this (note, we are dropping the HTML
from question 1 altogether). We will have a result that is a JSON object
holding an array of strings:
{
[
W3C Launches Web of Things initiative,
First Public Working Draft: Frame Timing,
Navigation Timing 2 Draft Published,
:
:
Last Call: XML Inclusions (XInclude) Version 1.1
]
}
Note, the final string in the array is NOT terminated by a comma. You
area required to use an "XSLT:IF" to test if a comma should be generated
or not.
Name your XSLT program "seven.xsl".
SERVER SIDE MASHUP Reading RSS
==============================
(8) 30 Points. Write a JSP page that asks the user to enter a topic from
a list of topics shown in a drop down list. The three topics will be
Business, Technology and World News. Once a selection is made your browser
will make a call on a Java servlet passing along the topic. The topic
is simply a string passed to the servlet from the browser.
The servlet will fetch the appropriate RSS 2.0 feed from the NY Times
web site. It will apply a style sheet that will generate HTML to
the browser. The HTML display will show each news title of each item.
Each news title will be displayed as a link. The user will be able to
click links to visit the associated page. Note that there are no
namespaces defined on the main elements in RSS 2.0.
New York Times feeds may be found at http://www.nytimes.com/services/xml/rss/index.html
A full page refresh is required.
Name this Netbeans project "Project8".
(9) 5 Points. Add a source of feeds drop down box to the application that
you built in question 8. Thus, the user will be able to select a topic and
a source. At a minimum, you will need to provide for three sources. In
my solution, I used the BBC, the New York Times and the Sydney Morning
Herald.
The BBC feeds are discussed here:
http://news.bbc.co.uk/1/hi/help/3223484.stm
The Sydney Morning Herald feeds are discussed
here:
http://www.smh.com.au/rssheadlines
A full page refresh is required.
Name this Netbeans project "Project9".
(10) 5 points. Add Ajax to your solution in question 9. Be creative
and redesign the site so that there is no need for a full page
refresh. Use the Javascript XHR object in Javascript. You are not
allowed to use JQuery or Angular.js for this question.
Name this Netbeans project "Project10".
(11) 10 Points. Add a text box to your application in question 10. This box will respond
to the blur event (See Sebesta's Popcorn example on the course slides)
and will be used to pass a text filter to the application.
Suppose the user wants to find out if the BBC has a World News item containing
the string Obama. The text filter will be AJAX enabled and will be
used to filter out all news titles that do not contain that string.
The servlet will now be accepting three parameters: the source of the news,
the topic and the filter. The filtering will be done within XSLT. So,
you will need to use an XSLT parameter as discussed in Part 3.5.
Name this Netbeans project "Project11".
(12) 5 points. Use the JQuery Javascript library for the AJAX calls.
Here is an introduction to JQuery that shows how the library can be
included in your Netbeans project:
http://netbeans.org/kb/docs/web/js-toolkits-jquery.html
Name this Netbeans project "Project12".
(13) 5 points. Use the Angular.js Javascript library for the AJAX calls. The
XSLT, for this problem, will be redesigned to generate JSON rather than
XML. Thus, JSON will be received by the browser.
Angular.js is described here:
https://angularjs.org
Name this Netbeans project "Project13".
(14) 2.5 Points. Modify the KML file found on the Course Schedule,
TravelingSalesPersonProblem.kml, so that it draws a shape on
Google Earth in the Pittsburgh area.
Name this file "fourteen.kml".
Submit one zip file called Homework2.zip to the assignment section of Blackboard.
Homework2.zip will contain all of the files and projects described above.