COAP:COAP-2180/week6: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Week 6 ==
== Week 6 ==
Week six will focus on introducing some popular XML applications
Week six will focus on introducing some popular XML applications


Line 6: Line 5:
# Discussion of the exam  
# Discussion of the exam  
# Discussion of the term project
# Discussion of the term project
# XML namespaces. For example, you will learn that one can integrate XML with XHTML and the other way round
# XML namespaces (short recall)
# Discussion of the ePUB format: Use of Calibre, a ePUB generating software and Sigil (an ePub editor)
# Introduction to static SVG and SMIL animations
# Timed text and creating captions for videos in Flash CS6
# Discussion of the ePUB format: Quick mention of Calibre, a ePUB generating software and demonstration of Sigil (an ePub editor)


== Monday ==
== Monday ==
Line 14: Line 13:
=== Discussion of the mid-term ===
=== Discussion of the mid-term ===


Short discussion of the mid-term:
Short discussion of the mid-term.


=== Discussion of the term project / DTD refinement ===
=== Discussion of the term project / DTD refinement ===
Line 22: Line 21:
* An extensive XML test file
* An extensive XML test file
* Rendering in HTML via XSLT + CSS, therefore an .xsl and a .css file for the resulting HTML
* Rendering in HTML via XSLT + CSS, therefore an .xsl and a .css file for the resulting HTML
* A second rendering in HTML via XSLT + CSS that will filter and (optionally) rearrange some data.
* An XML Schema (week 7) that adds some data constraints
* An XML Schema (week 7) that adds some data constraints
* A report/documentation in HTML, PDF or Word format (at least 1/2 page, but more if you aim for a top grade)
* A report/documentation in HTML, PDF or Word format (at least 1/2 page, but more if you aim for a top grade)
Line 35: Line 35:
* Final version on Wednesday week 8
* Final version on Wednesday week 8


=== Electronic books ===
=== ID / IDREF attributes ===
 
ID attributes require unique values. Below is an example that demonstrates use of an ID an IDREF, and an IDREFS attribute in order to create links between persons.
<source lang="XML">
<?xml version = "1.0"?>
<!DOCTYPE Folks [
<!ELEMENT Folks (Person*)>
<!ELEMENT Person (Name,Email?)>
<!ATTLIST Person Pin ID #REQUIRED>
<!ATTLIST Person Friend IDREF #IMPLIED>
<!ATTLIST Person Likes IDREFS #IMPLIED>
<!ELEMENT Name (#PCDATA)>
<!ELEMENT Email (#PCDATA)>
]>
<Folks>
    <Person Pin = "N1">
      <Name>Someone</Name>
    </Person>
 
    <Person Pin = "N2" Friend = "N1">
      <Name>Someone else</Name>
    </Person>
   
    <Person Pin = "N3" Likes = "N2 N1">
      <Name>Fan</Name>
    </Person>
</Folks>
</source>
 
=== XSLT code snippets for embedding pictures ===
* See also [[XSLT Tutorial - Basics]] and the '''optional''' [[XPath tutorial - basics]] and [[XSLT to generate SVG tutorial]]
 
URL is text of an element (<code><image>filename.png</image></code>):
<source lang="XML">
<xsl:template match="image">
  <p> <img src="{.}"/> </p>
</xsl:template>
</source>
 
URL is defined with an "source" attribute (<code><image source="filename.png">Cool picture</image></code>):
<source lang="XML">
<xsl:template match="image">
  <p>
      <img src="{@source}"/><br/>
      <xsl:value-of select="."/>  <!-- insert a caption -->
    </p>
</xsl:template>
</source>
 
Links follow the same logic, identify the HTML result you need, and read [[XSLT_Tutorial_-_Basics#Producing_HTML_Links|this]]
 
=== Creating link HTML links with XSLT ===
 
Creating links follows the same logic as dealing with pictures.
 
* Read: [[XSLT_Tutorial_-_Basics#Producing_HTML_Links|Producing HTML links]] (chapter from the XSLT Tutorial - Basics)
 
=== Internal tables of contents ===
 
Creating an internal table of contents is a bit more complicated. You must
* create internal anchors (<code><a name="....">...</a></code>)
* then create links that point to these (<code><a href="#....">...</a></code>)
 
Try to find a solution on the web, e.g. on with a google search like "stackoverflow xslt TOC". Make sure to narrow down good answers to ''simple'' solutions. Alternatively, search for "xslt create simple table of content"
 
'''New''': Read [[XSLT_Tutorial_-_Basics#Creating_an_internal_table_of_contents | Creating_an_internal_table_of_contents] (two examples that may help)]]
 
=== SVG ===
 
* [[Static SVG tutorial]]
* [[SVG/SMIL animation tutorial]], [[Interactive SVG-SMIL animation tutorial]]
* [[XSLT to generate SVG tutorial]]
 
; Tools
* https://svg-edit.github.io/svgedit/releases/svg-edit-2.8.1/svg-editor.html (Online editor)
* [https://inkscape.org/en/ Inkscape] (should be installed on your computer)


; Ebooks and ebook formats
; Resources
* [[E-book]] and [[E-book reader]] (Overview pages with links, both need some updating)
* http://openclipart.org (largest open source clipart collection)
* [[ePub]] (overview page for the popular e-book format)
* http://thenounproject.com/ (huge collection of icons)


; ePub tools
=== Code snippets for SVG visualization with XSLT ===
* Calibre (ePub converter)
** [[E-book conversion with Calibre]] (this wiki, but not complete)
** [http://calibre-ebook.com/help calibre help]. The main video only explains how to manage books, readers and news, but does not explain conversion. There are several help texts that do....
* Sigil (ePub editor)
** [http://code.google.com/p/sigil/ Sigil]
** [http://web.sigil.googlecode.com/git/files/OEBPS/Text/introduction.html UserGuide]


'''Documentation'''
<source lang="XML">
* Each tool (Calibre, Sigil) has extensive help + tutorials in various forms ....
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns="http://www.w3.org/1999/xhtml"
  >
<xsl:output
    method="xml"
    doctype-system="about:legacy-compat"
    omit-xml-declaration = "yes"
    encoding="UTF-8"
    indent="yes" />
<xsl:template match="/">
  <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta charset="utf-8"></meta>
      <title>Anything</title>
    </head>
    <body>
      <xsl:apply-templates/>
    </body>
</html>
</xsl:template>
<xsl:template match="ELEMENT_THAT_CONTAINS_A_NUMBER">
  Something here: <xsl:apply-templates/>
  <xsl:variable name="NUMBER" select="."/>
  <svg style="background-color:yellow;float:right" width="20" height="100"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg">
    <rect x="5px" y="5px" height="{$NUMBER*1.2}" width="10px" fill="green" />
  </svg>
</xsl:template>
</xsl:stylesheet>
</source>
* See [http://edutechwiki.unige.ch/en/XSLT_to_generate_SVG_tutorial#Visualizing_some_numbers this] for a complete example...


== Wednesday ==
== Wednesday ==


(also will include time for hw and term project start)
* SVG (continued ...): Adding an animation to a clipart object.
* Electronic books with Epub
* Time for work on individual projects


=== Integration of XML languages with namespaces ===
=== Integration of XML languages with namespaces ===
* [[XML namespace]]s
* [[XML namespace]]s
* [[XSLT for compound documents tutorial]]


'''Textbook chapters'''
'''Textbook chapters'''
Line 64: Line 174:
* Learning XML, Chapter "Markup and Core Concept". Namespace are shortly explained in the Elements Section
* Learning XML, Chapter "Markup and Core Concept". Namespace are shortly explained in the Elements Section


=== Timed text and Flash video captions ===
== Homework 5/6 ==


'''Hands on'''
Unless you are behind with homework, pick only one.


Add captions to a Flash Video with Flash CS6
=== Homework 5  ===


Start from the following example files if you like. In particular, we suggest adapting the XML file
'''Task'''


* [http://tecfa.unige.ch/guides/flash/ex/component-video-intro/flash-cs3-video-simple-server-caption2.html flash-cs3-video-simple-server-caption2.html]
* Revise homework 4 so that the DTD includes '''internal and external links''' and '''pictures'''. Alternatively, create a new DTD
* Source: [http://tecfa.unige.ch/guides/flash/ex/component-video-intro/flash-cs3-video-simple-server-caption2.fla flash-cs3-video-simple-server-caption2.fla]
* Modify or create the XSLT so that it will display pictures and internal as well as external links. Displaying an internal link also can mean that you insert a value of the linked element (e.g. a name).
* XML file: [http://tecfa.unige.ch/guides/flash/ex/component-video-intro/timed-text2.xml timed-text2.xml]
* Create a CSS for the generated HTML or improve the existing one, either use inline styles or better: an external CSS file)
* (Optional), output HTML5 including some SVG


Wiki pages:  
Tips:  
* [[Timed Text]] (optional reading)
* Use a template for each of your elements, otherwise make sure that you include contents using ''xsl:value-of'' or ''{...}'' within HTML attributes.
* [[Flash video captions tutorial]]
* Elements that only include other elements and no text should just be made into <nowiki><div> .... </div></nowiki> blocks for styling
* For debugging, '''use an XSLT processor''' (e.g. in the Exchanger editor) to manually create an HTML file, then look at its structure. You also should validate the file. Alternatively, use IE to look at the HTML transformation.


== Homework 6 ==
'''Deadline and submission:'''
* '''Monday week 7''' (before start of class)
* Use the world classroom: https://webster.blackboard.edu/
* Submit the *.dtd, the *.xml test files, the *.xslt file, the *.css file, multimedia assets (pictures), an optional optional report file (see below)


'''Due:'''
'''Evaluation criteria (roughly)'''
* Before start of class, Monday week 7'''


''Work considered as weak:''
* Incomplete rendering of elements, e.g. pictures do not show.


I will give you several options:
''Work considered as minimalistic:''
* Minimal rendering of elements, e.g. no extra information inserted
* XSLT can deal with pictures and links
* Very minimal CSS


=== Homework 6a ===
''Good work and excellent work (B to A-) may include '''one''' or several of the following:
* Inserted comments <!-- ... --> in the XSLT that explain some (not all of the translation)
* XSLT will add output that is needed to make the XML contents understandable
* A report (e.g. in HTML, word, PDF etc.)
* Good styling (usability)
* Good styling (coolness)
* Almost valid HTML produced
* HTML5 + SVG output
* Automatically generated table of contents.


'''Target population'''
''Brilliant work (A)
* This homework is ideal for students who aim to explore and XML application in depth that has become very popular.
* Does most of the above, i.e. produces a result that could be used in real life.
* Prerequisite: Some XHTML knowledge


'''Task'''
=== Homework 6 (SVG) ===


(1) Create an [[e-book]] in [[ePub]] format
'''Due:''' Before start of class, Wednesday week 7'''
* We suggest using the [http://calibre-ebook.com/ Calibre] converting tool (or similar), but you also can "handcraft" the e-pub file or use an authoring tool like [http://code.google.com/p/sigil/ Sigil] i.e. write a text from start (including some copy/paste of prior work).
* Content suggestion: A term paper you wrote for a non technical class, a technical manual made from open-content tutorials found on the web. A compilation of interesting News. Avoid creating e-books from "complex" HTML pages.
* You can take contents that you didn't create yourself, but in this case your '''name must appear in the e-book''', e.g. as the creator of e-book version and you should write a short foreword for this edition (1-2 sentences is enough)
(2) If you aim for a high grade, turn in an '''optional report''' that describes the intended audience of the e-book, its making (shortly) and other useful comments you may have.


'''Tips'''
'''Task (2 options) '''


Prior to creating an e-book, [[E-book#Links|download an e-book]] in ePub format and display it with a reader. You also can unzip the file and study its contents.
; Option A:
* Create some HTML5 contents that include an interesting SVG animation.
(Bonus for a start "button", you will have to do some reading...).


[http://calibre-ebook.com/help Calibre's help] should include enough information to get you started. Before picking up one tutorial, you also can have look at the [http://calibre-ebook.com/demo The official "Grand Tour Video"]
; Option B:
* Alternatively, create an SVG data visualization made with XSLT.
* Start from a '''data-rich''' XML file. There is not need to create a DTD, a well-formed XML file with meaningful tags is enough.
* For the SVG generation you can either use XSLT or use a PHP XML parser (sax, dom or simple) or E4X (Javascript)


EduTechWiki also includes a short[[E-book conversion with Calibre]] article. The only useful information so far concerns cleaning up HTML, how to deal with multiple files (i.e. creating a "tables of content file") and there are some links.
; Resources
* Wiki pages: [[SVG]] (links), [[Static SVG tutorial]]
** Option A:[[SVG/SMIL animation tutorial]], [[Interactive SVG-SMIL animation tutorial]]
** Option B:[[XSLT to generate SVG tutorial]]


If you use other tools, you are on your own for finding help and other useful information. If you want to start from scratch, Sigil is supposed to be a fairly easy to learn/use tool. It's basically a specialized HTML editor that will package files, images and meta-information into an epub file.
Upload: all files
 
== List of teaching materials ==
 
''' [[Tour de XML]]''' (cancelled this week)


=== Homework 6b ===
'''Demonstration'''
* [http://tecfa.unige.ch/guides/xml/examples/dtd-examples/cuisine.xml cuisine.xml] - [http://tecfa.unige.ch/guides/xml/examples/dtd-examples/cuisine.xsl cuisine.xsl] - [http://tecfa.unige.ch/guides/xml/examples/dtd-examples/cuisine.css cuisine.css]


'''Target population'''
'''Using the editor'''  
* CS students who would like to learn more about content generation and visualization
* [[Exchanger XML Editor]] (in particular, read the sections concerning XSLT)
* Talk to the instructor to "negotiate details"
* In case you are using another XML editor that can't do XSLT transformations, you could use the debug tools of IE (hit F12).


'''Task'''
'''XSLT and XPath texts'''
* Generate HTML5 contents or pure SVG that include some interesting SVG visualization. You also can suggest another graphical output format, like [[X3D]].
* [[XSLT Tutorial - Basics]]  
* Start from a '''data-rich''' XML file. There is not need to create a DTD, a well-formed XML file with meaningful tags is enough.
* [[DTD tutorial]] (wiki lecture notes, recall)
* For the SVG generation you can either use XSLT or use a PHP XML parser (sax, dom or simple) or E4X (Javascript)
* [[XPath tutorial - basics]] (optional wiki lecture notes for doing more advanced stuff)
* Bonus point for generating SMIL-style animations or other advanced features
* [http://tecfa.unige.ch/guides/te/files/xml-xslt.pdf xml-xslt.pdf] (slides)
* Wiki pages: [[SVG]] (links), [[Static SVG tutorial]], [[SVG/SMIL animation tutorial]], and [[XSLT to generate SVG tutorial]]


Upload: all files
'''SVG texts''' ('''optional''')
* [[Static SVG tutorial]] (important)
* [[Using SVG with HTML5 tutorial]]
* [[SVG/SMIL animation tutorial]]
* [[XSLT to generate SVG tutorial]]


=== Homework 6c ===
'''Examples files (also on the N: drive)'''
'''Target population'''
* This homework is suitable for students who took the Flash class or who are willing to spend a few hours on learning some Flash (start from [[Flash CS6 desktop tutorial]] and then move on to [[Flash video component tutorial]])


* Create a Flash movie that includes captions.
* [http://tecfa.unige.ch/guides/xml/examples/dtd-examples/ DTD and XML templates example directory]
* Bonus points for captions that overlap in time and for using a ''CaptionsBox''.
* [http://tecfa.unige.ch/guides/xml/examples/xsl-simple/ Simple XSLT examples]
* Wiki pages: [[Flash video captions tutorial]]


Upload: All files (including the video)
'''Textbook chapters'''


== Homework 7 ==
If you find that my lecture notes and slides are incomplete, too short or not good enough, reading '''either one or both texts''' is '''mandatory''' !


(to be confirmed)
DTDs:
* XML in a Nutshell, Chapter 3 Document Type Definitions (start here)
* Learning XML, Chapter 4 Quality Control with Schemas (additional reading)
XSLT:
* Ray, Learning XML, Second Edition, '''Transformation with XSLT''' chapter
* Ray, Learning XML, Second Edition, '''XPath and XPointer''' chapter (pp. 205-213)
* Harold, XML in a Nutshell, '''XSL Transformations (XSLT)''' chapter (optional)


* Create an XHML file that includes at least two other languages, one of which must be your own...
These chapters are available through the world classroom.
* Create either a CSS style-sheet or transform with XSLT style sheet for rendering

Latest revision as of 07:55, 1 May 2017

Week 6

Week six will focus on introducing some popular XML applications

Main topics:

  1. Discussion of the exam
  2. Discussion of the term project
  3. XML namespaces (short recall)
  4. Introduction to static SVG and SMIL animations
  5. Discussion of the ePUB format: Quick mention of Calibre, a ePUB generating software and demonstration of Sigil (an ePub editor)

Monday

Discussion of the mid-term

Short discussion of the mid-term.

Discussion of the term project / DTD refinement

The term project will include:

  • A DTD that models a "domain of your choice". This domain should be somewhat text-centric, i.e. one must be able to display the data in a meaningful way with an XSLT stylesheet.
  • An extensive XML test file
  • Rendering in HTML via XSLT + CSS, therefore an .xsl and a .css file for the resulting HTML
  • A second rendering in HTML via XSLT + CSS that will filter and (optionally) rearrange some data.
  • An XML Schema (week 7) that adds some data constraints
  • A report/documentation in HTML, PDF or Word format (at least 1/2 page, but more if you aim for a top grade)

Other constraints

  • All elements can be revisions of prior homework
  • Prior to turning in the project, the instructor must validate a draft DTD if the project is different from one of the prior homework. This is to prevent both failure and cheating...

On Wednesday, the instructor may discuss with each student if modifications ought to be made to DTDs made for prior homework (ask !)

Due:

  • Presentation/demo on Monday week 8
  • Final version on Wednesday week 8

ID / IDREF attributes

ID attributes require unique values. Below is an example that demonstrates use of an ID an IDREF, and an IDREFS attribute in order to create links between persons.

<?xml version = "1.0"?>
<!DOCTYPE Folks [
	<!ELEMENT Folks (Person*)>
	<!ELEMENT Person (Name,Email?)>
	<!ATTLIST Person Pin ID #REQUIRED>
	<!ATTLIST Person Friend IDREF #IMPLIED>
	<!ATTLIST Person Likes IDREFS #IMPLIED>
	<!ELEMENT Name (#PCDATA)>
	<!ELEMENT Email (#PCDATA)>
	]>
<Folks>
    <Person Pin = "N1">
      <Name>Someone</Name>
    </Person>

    <Person Pin = "N2" Friend = "N1">
      <Name>Someone else</Name>
    </Person>
    
    <Person Pin = "N3" Likes = "N2 N1">
      <Name>Fan</Name>
    </Person>
</Folks>

XSLT code snippets for embedding pictures

URL is text of an element (<image>filename.png</image>):

<xsl:template match="image">
   <p> <img src="{.}"/> </p>
</xsl:template>

URL is defined with an "source" attribute (<image source="filename.png">Cool picture</image>):

<xsl:template match="image">
   <p> 
      <img src="{@source}"/><br/>
      <xsl:value-of select="."/>  <!-- insert a caption -->
    </p>
</xsl:template>

Links follow the same logic, identify the HTML result you need, and read this

Creating link HTML links with XSLT

Creating links follows the same logic as dealing with pictures.

Internal tables of contents

Creating an internal table of contents is a bit more complicated. You must

  • create internal anchors (<a name="....">...</a>)
  • then create links that point to these (<a href="#....">...</a>)

Try to find a solution on the web, e.g. on with a google search like "stackoverflow xslt TOC". Make sure to narrow down good answers to simple solutions. Alternatively, search for "xslt create simple table of content"

New: Read Creating_an_internal_table_of_contents] (two examples that may help)

SVG

Tools
Resources

Code snippets for SVG visualization with XSLT

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xlink="http://www.w3.org/1999/xlink" 
   xmlns="http://www.w3.org/1999/xhtml"
   >
 
<xsl:output
     method="xml"
     doctype-system="about:legacy-compat"
     omit-xml-declaration = "yes"
     encoding="UTF-8"
     indent="yes" />
 
 <xsl:template match="/">
   <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
       <meta charset="utf-8"></meta>
       <title>Anything</title>
     </head>
     <body>
       <xsl:apply-templates/>
     </body>
 </html>
 </xsl:template>
 
 <xsl:template match="ELEMENT_THAT_CONTAINS_A_NUMBER">
   Something here: <xsl:apply-templates/>
   <xsl:variable name="NUMBER" select="."/>
   <svg style="background-color:yellow;float:right" width="20" height="100" 
	xmlns:xlink="http://www.w3.org/1999/xlink" 
	xmlns="http://www.w3.org/2000/svg">
     <rect x="5px" y="5px" height="{$NUMBER*1.2}" width="10px" fill="green" />
   </svg>
 </xsl:template>
 
</xsl:stylesheet>
  • See this for a complete example...

Wednesday

  • SVG (continued ...): Adding an animation to a clipart object.
  • Electronic books with Epub
  • Time for work on individual projects

Integration of XML languages with namespaces

Textbook chapters

  • Harold, XML in a Nutshell, Chapter 4 Namespaces (more informative)
  • Learning XML, Chapter "Markup and Core Concept". Namespace are shortly explained in the Elements Section

Homework 5/6

Unless you are behind with homework, pick only one.

Homework 5

Task

  • Revise homework 4 so that the DTD includes internal and external links and pictures. Alternatively, create a new DTD
  • Modify or create the XSLT so that it will display pictures and internal as well as external links. Displaying an internal link also can mean that you insert a value of the linked element (e.g. a name).
  • Create a CSS for the generated HTML or improve the existing one, either use inline styles or better: an external CSS file)
  • (Optional), output HTML5 including some SVG

Tips:

  • Use a template for each of your elements, otherwise make sure that you include contents using xsl:value-of or {...} within HTML attributes.
  • Elements that only include other elements and no text should just be made into <div> .... </div> blocks for styling
  • For debugging, use an XSLT processor (e.g. in the Exchanger editor) to manually create an HTML file, then look at its structure. You also should validate the file. Alternatively, use IE to look at the HTML transformation.

Deadline and submission:

  • Monday week 7 (before start of class)
  • Use the world classroom: https://webster.blackboard.edu/
  • Submit the *.dtd, the *.xml test files, the *.xslt file, the *.css file, multimedia assets (pictures), an optional optional report file (see below)

Evaluation criteria (roughly)

Work considered as weak:

  • Incomplete rendering of elements, e.g. pictures do not show.

Work considered as minimalistic:

  • Minimal rendering of elements, e.g. no extra information inserted
  • XSLT can deal with pictures and links
  • Very minimal CSS

Good work and excellent work (B to A-) may include one or several of the following:

  • Inserted comments in the XSLT that explain some (not all of the translation)
  • XSLT will add output that is needed to make the XML contents understandable
  • A report (e.g. in HTML, word, PDF etc.)
  • Good styling (usability)
  • Good styling (coolness)
  • Almost valid HTML produced
  • HTML5 + SVG output
  • Automatically generated table of contents.

Brilliant work (A)

  • Does most of the above, i.e. produces a result that could be used in real life.

Homework 6 (SVG)

Due: Before start of class, Wednesday week 7

Task (2 options)

Option A
  • Create some HTML5 contents that include an interesting SVG animation.

(Bonus for a start "button", you will have to do some reading...).

Option B
  • Alternatively, create an SVG data visualization made with XSLT.
  • Start from a data-rich XML file. There is not need to create a DTD, a well-formed XML file with meaningful tags is enough.
  • For the SVG generation you can either use XSLT or use a PHP XML parser (sax, dom or simple) or E4X (Javascript)
Resources

Upload: all files

List of teaching materials

Tour de XML (cancelled this week)

Demonstration

Using the editor

  • Exchanger XML Editor (in particular, read the sections concerning XSLT)
  • In case you are using another XML editor that can't do XSLT transformations, you could use the debug tools of IE (hit F12).

XSLT and XPath texts

SVG texts (optional)

Examples files (also on the N: drive)

Textbook chapters

If you find that my lecture notes and slides are incomplete, too short or not good enough, reading either one or both texts is mandatory !

DTDs:

  • XML in a Nutshell, Chapter 3 Document Type Definitions (start here)
  • Learning XML, Chapter 4 Quality Control with Schemas (additional reading)

XSLT:

  • Ray, Learning XML, Second Edition, Transformation with XSLT chapter
  • Ray, Learning XML, Second Edition, XPath and XPointer chapter (pp. 205-213)
  • Harold, XML in a Nutshell, XSL Transformations (XSLT) chapter (optional)

These chapters are available through the world classroom.