Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Graphics on the Web

What do we Need?

Vector graphics
Resolution independent
Keeps “content” information
In line with earlier developments (GKS, PHIGS, PostScript, …)
Textual encoding (too)
Let the client side interpret the content
Searchable
Easy to edit, add links, etc
Base it on XML
Would use a well-understood syntax
Can “inherit” functionalities from elsewhere
Can make use of XML aware software (implementations, editing, …)
Would integrate well with the rest of the Web

SVG

Scalable Vector Graphics (SVG):

“SVG is the HTML for Graphics”

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

A Simple SVG Example

I am sorry, you should have an SVG plugin to display this slide

Coordinates, Transformations

  ... transform="scale(2) rotate(20) translate(1,2) scale(4)" ...

Basic Coordinate System

I am sorry, you should have an SVG plugin to display this slide

Possible Units

I am sorry, you should have an SVG plugin to display this slide

Using Viewbox

I am sorry, you should have an SVG plugin to display this slide

Simple Transformations

I am sorry, you should have an SVG plugin to display this slide

Rotations

I am sorry, you should have an SVG plugin to display this slide

Matrices are 2×3!

I am sorry, you should have an SVG plugin to display this slide

Concatenation Examples

I am sorry, you should have an SVG plugin to display this slide

All Transformations Together

I am sorry, you should have an SVG plugin to display this slide

Grouping

    <g id="duck" transform="translate(100,345)">
         <desc>This is the duck></desc>
         <path d="...."/>
    </g>

Structuring SVG Files: Templates

    <defs>
        <g id="duck"> <path d="..." .../> </g>
    </defs>
    ...
    <use xlink:href="#duck">
    <symbol id="duck"> <path d="..." .../> </symbol>
    ...
    <use xlink:href="#duck">

Structuring SVG Files (cont)

    <svg ....>
       ...
       <svg ....>...</svg>
       ...
    </svg>

Grouping/Templates are Used a Lot!

I am sorry, you should have an SVG plugin to display this slide

Sierpinski Triangle

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Geometry: Path Expressions

I am sorry, you should have an SVG plugin to display this slide

Path Simplifications

Use relative coordinates
l instead of L, c instead of C, etc, define relative coordinates
Drop repeated command characters
"M 1 2 L 3 4 5 6 7 8 z"
is equivalent to:
"M 1 2 L 3 4 L 5 6 L 7 8 z"
Syntactic simplification
Whitespace can be omitted everywhere where possible:
<path d="M0 312c40 48 120-32 160-6c0 0 5 4 10-3c10-103 50-83
c0 0 20 12 30 7c-2 12-18 17-40 17..."/>
is a compressed version of the duck (a reduction of over 60%!)
Smooth curves
Implicit definition of Bézier control points for adjacent curves

Path Examples

I am sorry, you should have an SVG plugin to display this slide

Path Details: Q-Splines

I am sorry, you should have an SVG plugin to display this slide

Path Details: Q-Splines (cont)

I am sorry, you should have an SVG plugin to display this slide

Path Details: C-Splines

I am sorry, you should have an SVG plugin to display this slide

Path Details: C-Splines (cont)

I am sorry, you should have an SVG plugin to display this slide

Path Details: Arcs

I am sorry, you should have an SVG plugin to display this slide

Path “Shortcuts”

I am sorry, you should have an SVG plugin to display this slide

Text

    <path id="path"> ...</path>
    <text><textPath xlink:href="#path"> ...</textPath></text>

I am sorry, you should have an SVG plugin to display this slide

Plain Text Examples

I am sorry, you should have an SVG plugin to display this slide

tspan Examples

I am sorry, you should have an SVG plugin to display this slide

Text on Paths

I am sorry, you should have an SVG plugin to display this slide

International Text

I am sorry, you should have an SVG plugin to display this slide

Inclusion of Images

I am sorry, you should have an SVG plugin to display this slide

Images Inline

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Rendering Model

I am sorry, you should have an SVG plugin to display this slide

Opacity, Blending

I am sorry, you should have an SVG plugin to display this slide

Opacity on Groups

I am sorry, you should have an SVG plugin to display this slide

Clipping

I am sorry, you should have an SVG plugin to display this slide

The "objectBoundingBox" Attribute

I am sorry, you should have an SVG plugin to display this slide

Masking

I am sorry, you should have an SVG plugin to display this slide

Practical Masking Example

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

SVG Attributes

Stroke Attributes

I am sorry, you should have an SVG plugin to display this slide

Dash line control

I am sorry, you should have an SVG plugin to display this slide

Marker Symbols

I am sorry, you should have an SVG plugin to display this slide

Area Attributes

I am sorry, you should have an SVG plugin to display this slide

Fill Rules

I am sorry, you should have an SVG plugin to display this slide

Fill Rule Examples

I am sorry, you should have an SVG plugin to display this slide

Gradient Fill Definitions

I am sorry, you should have an SVG plugin to display this slide

Gradient Fill Examples

I am sorry, you should have an SVG plugin to display this slide

Details of Gradient Specification

I am sorry, you should have an SVG plugin to display this slide

Transforming Gradients

I am sorry, you should have an SVG plugin to display this slide

Another Gradient Example

I am sorry, you should have an SVG plugin to display this slide

Pattern Fill

I am sorry, you should have an SVG plugin to display this slide

Adaptation of a Pattern to an Area

I am sorry, you should have an SVG plugin to display this slide

Typical Use of Patterns

I am sorry, you should have an SVG plugin to display this slide

Image as a Pattern

I am sorry, you should have an SVG plugin to display this slide

Patterns can be Transformed

    <pattern id="P" patternTransform="rotate(45)"
        <image width="72" height="48" xlink:href="w3chome.png"
    </pattern>

I am sorry, you should have an SVG plugin to display this slide

Stroke/Fill Attributes Defaults

Text Attributes

I am sorry, you should have an SVG plugin to display this slide

Text Rendering control

I am sorry, you should have an SVG plugin to display this slide

Named Colours

I am sorry, you should have an SVG plugin to display this slide

Named Colours & RGB values

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Styling in Text Processing

Styling in Graphics

SVG Styling

Simple styling example:

<rect fill="yellow" stroke="black" width=".." height=".."/>
<text font="Helvetica" font-size="14" x=".." y="..">...</text>

Equivalent CSS syntax:

<rect style="fill:yellow;stroke:black" width=".." height=".."/>
<text style="font:Helvetica;font-size:14" x=".." y="..">...</text>

Separation into separate style:

<svg ...>
    <style type="text/css">
rect.example {fill:yellow; stroke:black }
text.example {font:Helvetica; font-size:14 }
    </style>
    ...
    <rect class="example" width=".." height=".."/>
    ...
    <text class="example" x=".." y="..">...</text>
</svg>

SVG Styling 2

I am sorry, you should have an SVG plugin to display this slide

Separation into a CSS File

Separation into separate style file:

    rect.example {fill:yellow; stroke:black }
    text.example {font:Helvetica; font-size:14 }
    <?xml-stylesheet type="text/css" href="style.css" ?>
    <svg ...>
      ...
      <rect class="example" width=".." height=".."/>
      ...
      <text class="example" x=".." y="..">...</text>
    </svg>

Styling Priorities

Complex Lines with Styling

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Font Selection

SVG Fonts

I am sorry, you should have an SVG plugin to display this slide

SVG Font Definition...

I am sorry, you should have an SVG plugin to display this slide

... and What You Get

I am sorry, you should have an SVG plugin to display this slide

Font Metrics

I am sorry, you should have an SVG plugin to display this slide

Referring to external fonts

    <font-face font-family="Font name" font-weight=".."
       font-style="..">
      <font-face-src>
        <font-face-uri xlink:href="File.svg#FontID"/>
      </font-face-src>
    </font-face>
    @font-face { font-family:"Font name"; 
                 font-weight:...; font-style:...;
                 src: url("File.svg#FontID") format(svg); }

I am sorry, you should have an SVG plugin to display this slide

Han Character Example

I am sorry, you should have an SVG plugin to display this slide

Smiley Font Example

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Filters

I am sorry, you should have an SVG plugin to display this slide

Filter Operations

I am sorry, you should have an SVG plugin to display this slide

Filter Primitives

Filter Details

I am sorry, you should have an SVG plugin to display this slide

Coding Filters in SVG

<defs>
    <filter id="DropShadowFilter">
        <feGaussianBlur in="SourceAlpha" stdDeviation="2"
          result="BlurAlpha"/>
        ...
        <feMerge>
            <feMergeNode in="BlurAlpha"/>
            <feMergeNode in="SourceGraphic"/>
        </feMerge>
    </filter>
</defs>
...
<g filter="url(#DropShadowFilter)">
    <path d="...">
    ...
</g>

(Rough) Overview of Filters

Overview of Filters (cont.)

Colour Matrix Manipulation

I am sorry, you should have an SVG plugin to display this slide

Linear Component Transfer

I am sorry, you should have an SVG plugin to display this slide

Gamma Component Transfer

I am sorry, you should have an SVG plugin to display this slide

Picture Compositing

I am sorry, you should have an SVG plugin to display this slide

Convolution Matrix on Pixels

I am sorry, you should have an SVG plugin to display this slide

Morphed Ducks

I am sorry, you should have an SVG plugin to display this slide

Displacement Maps

I am sorry, you should have an SVG plugin to display this slide

Displacement Maps 2.

I am sorry, you should have an SVG plugin to display this slide

Lighting

It’s a bit of a fake, but can be very useful!

Lighting Effects

I am sorry, you should have an SVG plugin to display this slide

Turbulent Ducks

I am sorry, you should have an SVG plugin to display this slide

Filtering the W3C Logo

I am sorry, you should have an SVG plugin to display this slide

Filter Usage May Be Very Simple!

			<filter filterUnits="objectBoundingBox" height="1.6" 
			    id="background" width="1.1" x="-0.05" y="-0.4">
				<feFlood flood-color="yellow" result="flood"/>
				<feMerge>
					<feMergeNode in="flood"/>
					<feMergeNode in="SourceGraphic"/>
				</feMerge>
			</filter>

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

SVG Animation

SVG Animation Example

I am sorry, you should have an SVG plugin to display this slide

Aspects to Describe

  1. What can be animated?
  2. How are the values calculated?
  3. When does animation occur?

What is animated?

I am sorry, you should have an SVG plugin to display this slide

Path Deformation

I am sorry, you should have an SVG plugin to display this slide

Walking Man…

I am sorry, you should have an SVG plugin to display this slide

Animate Transformation

I am sorry, you should have an SVG plugin to display this slide

Animate Motion

I am sorry, you should have an SVG plugin to display this slide

Animate Colour

I am sorry, you should have an SVG plugin to display this slide

Instantaneous Change: ‘set’

I am sorry, you should have an SVG plugin to display this slide

How are the values calculated?

Key Values

I am sorry, you should have an SVG plugin to display this slide

Key Values example

I am sorry, you should have an SVG plugin to display this slide

Key Values and Times

I am sorry, you should have an SVG plugin to display this slide

Time Interpolation Modes

I am sorry, you should have an SVG plugin to display this slide

Key Splines

I am sorry, you should have an SVG plugin to display this slide

Bouncing Cubes

I am sorry, you should have an SVG plugin to display this slide

When?

When (cont.)?

Detailed semantics defined in a separate SMIL specification

Chaining Animations

I am sorry, you should have an SVG plugin to display this slide

Multimedia Show...

I am sorry, you should have an SVG plugin to display this slide

Control with Mouse Events

I am sorry, you should have an SVG plugin to display this slide

Cartography Example

I am sorry, you should have an SVG plugin to display this slide

Panda and the Flower

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Framing an Image

I am sorry, you should have an SVG plugin to display this slide

Framing an Image: How

<image id="frame" xlink:href="../jpgs/frame.jpg" width="..."/>
<filter id="makeFrame">
	<feColorMatrix type="matrix" values="
	1      0      0       0 0
	0      1      0       0 0
	0      0      1       0 0
	0.2125 0.7154 0.0721  0 0
	"/>
	<feComponentTransfer>
		<feFuncR type="linear" slope="0.0" intercept="1.0"/>
		<feFuncG type="linear" slope="0.0" intercept="1.0"/>
		<feFuncB type="linear" slope="0.0" intercept="1.0"/>
		<feFuncA type="discrete" tableValues="0 1"/>
	</feComponentTransfer>
</filter>
<mask id="mask">
	<use xlink:href="#frame" filter="url(#makeFrame)"/>
</mask>

Animating Gradients in Filters

Animate the radius of the gradient for feDisplacementMap

I am sorry, you should have an SVG plugin to display this slide

Animating Font Glyphs

I am sorry, you should have an SVG plugin to display this slide

Using Filters for Patterns

I am sorry, you should have an SVG plugin to display this slide

Animate Clipping Path

I am sorry, you should have an SVG plugin to display this slide

The Power of Local Animations

I am sorry, you should have an SVG plugin to display this slide

Changing Pattern References

    <path fill="url(#Pattern)"
        <set attributeName="fill" to="url(#Pattern2)" begin="click"/>
    </path>

I am sorry, you should have an SVG plugin to display this slide

Lights and Images

<feImage xlink:href="../jpgs/Cadaques3.jpg" result="image">
<feSpecularLighting lighting-color="red" in="image" out="spot"...>
  <fePointLight x="200" y="140" z="20">
    <animate attributeName="x" from="200" to="350" .../>
    <animate attributeName="z" from="20" to="160" .../>
  </fePointLight>
  <animate attributeName="lighting-color" from="red" to="yellow".../>
</feSpecularLighting>
<feComposite operator="arithmetic" in="image" in2="spot" .../>

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

SVG DOM

Scripting Languages

DOM Tree

I am sorry, you should have an SVG plugin to display this slide

But it is not that simple...

I am sorry, you should have an SVG plugin to display this slide

SVG DOM Objects and Methods

Interacting with an Element

Interacting directly:

    <... id="myrect" onclick="interact(evt)"...>
    ...
    function interact(evt) {
        svgobj = evt.target;
        svgobj.setAttribute("fill","red");
        svgstyle = svgobj.getStyle();
        svgstyle.setProperty("opacity",0.5,"");
        ...

Interacting elsewhere from a script:

        svgdoc = evt.target.getOwnerDocument();
        svgobj = svgdoc.getElementById("myrect");

Example: Usage of “onclick”

I am sorry, you should have an SVG plugin to display this slide

Reacting on “mouseover”

I am sorry, you should have an SVG plugin to display this slide

Modifying the DOM Tree

I am sorry, you should have an SVG plugin to display this slide

Interaction with the DOM Tree

I am sorry, you should have an SVG plugin to display this slide

Event List

Idiom: Animation with Mouse

I am sorry, you should have an SVG plugin to display this slide

Idiom: Top Level Document

    <svg .... onload="init(evt)">
        ...
        <script type="text/ecmascript"><![CDATA[
            var svgdoc;
            function init(evt) {
                svgdoc = evt.currentTarget.getOwnerDocument();
                ...
        ]]></script>
        ...
    </svg>

Idiom: Namespaces

    <script type="text/ecmascript"><![CDATA[
      var svgns   = "http://www.w3.org/2000/svg";
      var xlinkns = "http://www.w3.org/1999/xlink";
      ...
      function f() {
        // a.setAttribute("xlink:href","http://www.example.org");  
        a.setAttributeNS(xlinkns,"href","http://www.example.org");
        ...
        obj.setAttributeNS(null,"x",300);
        ...
    ]]></script>

Idiom: Animation

  <script type="text/ecmascript"><![CDATA[
    function init() {
      ...
      setInterval("animate()",10);  // timer in miliseconds
    }
    function animate() {
      ...
      if( animateContinues) setInterval("animate()",10);
    }
          ...
  ]]></script>

Frame Based Animation

I am sorry, you should have an SVG plugin to display this slide

Same Effect with Animation Objects!

I am sorry, you should have an SVG plugin to display this slide

When Should Scripts Be Used?

RDF Schema Viewer Example

RDF Graph Visualizer:

   <svg ... xmlns:appl="http://..." onload="init(evt)">
     <style xlink:href="preds.js" ... />
     ....
     <appl:resource id="R1" x=".." y=".." label=".."/>
     <appl:resource id="R2" x=".." y=".." label=".."/>
     <appl:predicate subject="R1" object="R2" label=".."/>
     ....
   </svg>

Idioms for Applications

  <script type="text/ecmascript"><![CDATA[
    var applns  = "http://www.ivan-herman.net#Presentations";
    ...
    function f() {
      r = svgdoc.getElementsByTagNameNS(applns,"resource");
      p = svgdoc.getElementsByTagNameNS(applns,"predicate");
      ...
  ]]></script>

W3C Document Visualizer

Tour through W3C Documents...:

Binomial Distribution

I am sorry, you should have an SVG plugin to display this slide

Clock

    <g onload="Start(evt)" ... >
    ...
    function Start(evt)
        var now=new Date();
        clockObj.adjustTime(now);
    }

I am sorry, you should have an SVG plugin to display this slide

Mine Sweeper Example

I am sorry, you should have an SVG plugin to display this slide

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Miscellaneous

Conditional Processing

    <switch>
      <text systemLanguage="fr">Bonjour!</text>
      <text systemLanguage="en">Good morning!</text>
    </switch>
    ...
    <rect requiredFeatures="org.w3c.svg.dynamic" 
       visibility="hidden" ... />

Metadata

    <svg id="ThisSVG" ... >
      <metadata> <!-- Using the Dublin Core vocabulary -->
        <rdf:RDF xmlns:rdf="..." xmlns:dc="...">
          <rdf:Description rdf:about="#ThisSVG/">
            <dc:title>Presenting SVG</dc:title>
            <dc:publisher>World Wide Web Consortium</dc:publisher>
            <dc:date> 2001-10-29</dc:date>
          </rdf:Description>
        </rdf:RDF>
      </metadata>
      ...
    </svg>

Foreign Objects

    <foreignObject width="100" height="50"
        requiredExtensions="http://example.com/.../XHTML">
      <html xmlns="http://www.w3.org/1999/xhtml">
        <body>
          <p>Here is a paragraph that XHTML features</p>
        </body>
      </html>
    </foreignObject>

Some Design Guidelines

These are, of course, personal guidelines…

Some Performance Tricks

Accessibility Issues

SVG in Practice

SVG Mime Type

SVG and HTML

Inclusion into HTML with a plugin:

    <object data="File.svg" width=".." height=".."
      type="image/svg+xml">
        <img src="..." alt="Image replacement.../>
    </object>

Establishing the Coordinate System

I am sorry, you should have an SVG plugin to display this slide

Preservation of Aspect Ratio

I am sorry, you should have an SVG plugin to display this slide

Aspect Ratio Examples

I am sorry, you should have an SVG plugin to display this slide

Access to the DOM from HTML

It should work properly with <object>, but it does not always…

Better (Future) Integration

    <?xml version="1.0" standalone="yes"?>
    <parent xmlns="http://example.org"
            xmlns:gr="http://www.w3.org/2000/svg">
      <parentElement>....</parentElement>
      <anotherParentElement>
        <gr:svg viewBox="..." width="..." height="..." ... >
          <gr:rect>....</gr:rect>
        </gr:svg>
      </anotherParentElement>
    </parent>

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

SVG Mobile Profiles

SVG Basic

SVG Tiny

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Implementations: Players

None of these are complete, but we are getting there!

Adobe Plugin Deficiencies

Implementations: Authoring

Check W3C's site: http://www.w3.org/Graphics/SVG/!

Application Examples

Application Examples (cont.)

Some Mobile SVG Examples

Photos of PDAs and Phones with Mobile SVG

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

SVG1.2

SVG 1.2: Better Text

    <flowRoot>
        <flowRegion>
            <path  .../><rect .../>
            <flowRegionExclude><rect.../></flowRegionExclude>
        </flowRegion>
        <flowDiv>
            <flowPara>Bla bla bla ...</flowPara>
            <flowPara>Bla bla bla ...</flowPara>
        <flowDiv>
    </flowRoot>

Flowtext Example

I am sorry, you should have an SVG plug-in to display this slide

SVG 1.2: Pages, Time

SVG 1.2: Audio, Video

Audio & Video Example

I am sorry, you should have an SVG plug-in to display this slide

SVG 1.2: Richer Rendering model

Composition Examples

I am sorry, you should have an SVG plug-in to display this slide

Better Content Creation

SVG 1.2: Vector Effects

Vector Effect Example

  <vectorEffect id="rail">
    <veStroke stroke-width="6" fill="none" stroke="black"
              in="SourcePath"/>
    <veStroke stroke-width="3" fill="none" stroke="white"
              stroke-dasharray="10,4" in="SourcePath"/> 
  </vectorEffect>
  <path vector-effect="url(#rail)" d="..."/>
  ...

I am sorry, you should have an SVG plug-in to display this slide

XML Binding Language (sXBL)

A bit of sXBL’s History

Simple sXBL

  <xbl:xbl>
    <xbl:definition element="a:Node">
      <xbl:template>
        <g>
          <circle ... />
          <text ...><xbl:content/></text>
        </g>
      </xbl:template>
    </xbl:definition>
  </xbl:xbl>
  <a:Node">Start</a:Node>
  <a:Node">End</a:Node>

I am sorry, you should have an SVG plug-in to display this slide

Complex sXBL With Script

  <xbl:xbl>
    <xbl:definition element="a:Flow">
      <xbl:template><g><xbl:content/></g></xbl:template>
      <xbl:handlerGroup>
        <handler ev:event="xbl:bound" type="text/ECMAScript>
           ...(script to position the circles, draw the arrows...)
        </handler>
      </xbl:handlerGroup>
    </definition>
  </xbl:xbl>
  <a:Flow xmlns:a="http://a.b.c">
    <a:Node>Start</a:Node>
    <a:Node>Step 1</a:Node>
    <a:Node>Step 2</a:Node>
    <a:Node>End</a:Node>
  </a:Flow>

I am sorry, you should have an SVG plug-in to display this slide

SVG 1.2: Additional DOM Functionalities

SVG 1.2 Mobile and Print

Course schedule

IntroductionMiscellaneous
Transformations, structuringSVG Mobile
GeometryImplementations, examples
Clipping, maskingFuture: SVG 1.2
AttributesWrap up
Styling
SVG Fonts
Filters
Animation
Some combinations…
DOM

Closing Examples

Further Information

The SVG Recommendation itself:
http://www.w3.org/TR/SVG/
SVG 1.2 Working Draft
http://www.w3.org/TR/SVG12/
Textbooks
Several books published already
Some other sites on SVG:
http://wdvl.com/Authoring/Languages/XML/SVG/
http://www.protocol7.com/svg-wiki/ (Lots of links)
http://www.svgs.org/ (SVG Foundation, also lots of links)
http://www.kevlindev.com (Kevin Lindsey)
http://pilat.free.fr/tutorial/index.svg (Michel Hirtzler)
http://groups.yahoo.com/group/svg-developers/
...

Further Information (cont.)

Start by:
http://wdvl.com/Authoring/Languages/XML/SVG/
http://www.svgs.org/ (SVG Foundation)
http://www.w3.org/Graphics/SVG/
Proceedings of SVG Open conferences
http://www.svgopen.org/

Further Information (cont)

These slides:
http://www.w3.org/Consortium/Offices/Presentations/SVG/
An “evolving” version:
http://www.w3.org/Consortium/Offices/Presentations/SVG/
Mail me if you want:
ivan@w3.org
Acknowledgements to:
Bob and Paul Hopgood, David Duce, Andreas Neumann,
Dean Jackson, Kevin Lindsey, Antoinne Quint, Peter Garza,
Michel Hirtzler, Stefan Gössner, Max Froumentin, …
(Apologies to those I may have forgotten…)