Presentation of XML Documents Patryk Czarnik Institute of - - PowerPoint PPT Presentation

presentation of xml documents
SMART_READER_LITE
LIVE PREVIEW

Presentation of XML Documents Patryk Czarnik Institute of - - PowerPoint PPT Presentation

Presentation of XML Documents Patryk Czarnik Institute of Informatics University of Warsaw XML and Modern Techniques of Content Management 2010/11 Patryk Czarnik 06 Presentation XML 2010/11 1 / 55 Stylesheets 1 Separating content


slide-1
SLIDE 1

Presentation of XML Documents

Patryk Czarnik

Institute of Informatics University of Warsaw

XML and Modern Techniques of Content Management – 2010/11

Patryk Czarnik 06 – Presentation XML 2010/11 1 / 55

slide-2
SLIDE 2

1

Stylesheets Separating content and presentation Associating style with document

2

CSS Idea and applications CSS sheet structure Formatting

3

XSL Presentation by transformation XSLT — Introduction XSL-FO

slide-3
SLIDE 3

1

Stylesheets Separating content and presentation Associating style with document

2

CSS Idea and applications CSS sheet structure Formatting

3

XSL Presentation by transformation XSLT — Introduction XSL-FO

slide-4
SLIDE 4

Stylesheets Separating content and presentation

Separating content and presentation

According to XML best practices documents contain:

content/data markup for structure and meaning (semantical markup) no formatting

How to present?

“hard-coded” interpretation of known document types external style sheets

Patryk Czarnik 06 – Presentation XML 2010/11 4 / 55

slide-5
SLIDE 5

Stylesheets Separating content and presentation

Separating content and presentation

According to XML best practices documents contain:

content/data markup for structure and meaning (semantical markup) no formatting

How to present?

“hard-coded” interpretation of known document types external style sheets

Patryk Czarnik 06 – Presentation XML 2010/11 4 / 55

slide-6
SLIDE 6

Stylesheets Separating content and presentation

Separating content and presentation

According to XML best practices documents contain:

content/data markup for structure and meaning (semantical markup) no formatting

How to present?

“hard-coded” interpretation of known document types external style sheets

Patryk Czarnik 06 – Presentation XML 2010/11 4 / 55

slide-7
SLIDE 7

Stylesheets idea

<person position="starszy referent"> <name>Dawid</name> <surname>Paszkiewicz</surname> <phone type="office">+48223213203</telefon> <phone type="mobile">+48501502503</telefon> <email>paszkiewicz@superfirma.pll</email> </pracownik> * yellow backgorund * blue font and border * italic font for name * typewritter font for email

slide-8
SLIDE 8

Stylesheets idea

<person position="starszy referent"> <name>Dawid</name> <surname>Paszkiewicz</surname> <phone type="office">+48223213203</telefon> <phone type="mobile">+48501502503</telefon> <email>paszkiewicz@superfirma.pll</email> </pracownik> * yellow backgorund * blue font and border * italic font for name * typewritter font for email

slide-9
SLIDE 9

Stylesheets idea

<person position="starszy referent"> <name>Dawid</name> <surname>Paszkiewicz</surname> <phone type="office">+48223213203</telefon> <phone type="mobile">+48501502503</telefon> <email>paszkiewicz@superfirma.pll</email> </pracownik> * yellow backgorund * blue font and border * italic font for name * typewritter font for email * font 'Times 10pt' * 12pt for name * abbreviation before phone number

slide-10
SLIDE 10

Stylesheets idea

<person position="starszy referent"> <name>Dawid</name> <surname>Paszkiewicz</surname> <phone type="office">+48223213203</telefon> <phone type="mobile">+48501502503</telefon> <email>paszkiewicz@superfirma.pll</email> </pracownik> * yellow backgorund * blue font and border * italic font for name * typewritter font for email * font 'Times 10pt' * 12pt for name * abbreviation before phone number <person position="starszy referent"> <name>Arkadiusz</name> <surname>Gierasimczyk</surname> <phone type="office">+48223213213</phone> <phone type="mobile">+48501502503</phone> <email>gieras@superfirma.pll</email> </pracownik>

slide-11
SLIDE 11

Stylesheets Separating content and presentation

Advantages of separating content and formatting

General advantages of semantical markup

better content understanding and easier analysis

Ability to show again

the same document after modification another document of the same structure

Formatting managed in one place

easy to change look of whole class of documents

Ability to define many stylesheets for a document, depending on:

purpose medium (screen, paper, voice) detail level (full report, summary) reader preferences (font size, colors, . . . )

Patryk Czarnik 06 – Presentation XML 2010/11 6 / 55

slide-12
SLIDE 12

Stylesheets Separating content and presentation

Advantages of separating content and formatting

General advantages of semantical markup

better content understanding and easier analysis

Ability to show again

the same document after modification another document of the same structure

Formatting managed in one place

easy to change look of whole class of documents

Ability to define many stylesheets for a document, depending on:

purpose medium (screen, paper, voice) detail level (full report, summary) reader preferences (font size, colors, . . . )

Patryk Czarnik 06 – Presentation XML 2010/11 6 / 55

slide-13
SLIDE 13

Stylesheets Separating content and presentation

Advantages of separating content and formatting

General advantages of semantical markup

better content understanding and easier analysis

Ability to show again

the same document after modification another document of the same structure

Formatting managed in one place

easy to change look of whole class of documents

Ability to define many stylesheets for a document, depending on:

purpose medium (screen, paper, voice) detail level (full report, summary) reader preferences (font size, colors, . . . )

Patryk Czarnik 06 – Presentation XML 2010/11 6 / 55

slide-14
SLIDE 14

Stylesheets Separating content and presentation

Advantages of separating content and formatting

General advantages of semantical markup

better content understanding and easier analysis

Ability to show again

the same document after modification another document of the same structure

Formatting managed in one place

easy to change look of whole class of documents

Ability to define many stylesheets for a document, depending on:

purpose medium (screen, paper, voice) detail level (full report, summary) reader preferences (font size, colors, . . . )

Patryk Czarnik 06 – Presentation XML 2010/11 6 / 55

slide-15
SLIDE 15

Stylesheets Separating content and presentation

Standards related to XML presentation

General:

Associating Style Sheets with XML documents

Stylesheet languages:

DSSSL (deprecated, applied to SGML) Document Style Semantics and Specification Language CSS Cascading Style Sheets XSL Extensible Stylesheet Language

Patryk Czarnik 06 – Presentation XML 2010/11 7 / 55

slide-16
SLIDE 16

Stylesheets Separating content and presentation

Standards related to XML presentation

General:

Associating Style Sheets with XML documents

Stylesheet languages:

DSSSL (deprecated, applied to SGML) Document Style Semantics and Specification Language CSS Cascading Style Sheets XSL Extensible Stylesheet Language

Patryk Czarnik 06 – Presentation XML 2010/11 7 / 55

slide-17
SLIDE 17

Stylesheets Separating content and presentation

Standards related to XML presentation

General:

Associating Style Sheets with XML documents

Stylesheet languages:

DSSSL (deprecated, applied to SGML) Document Style Semantics and Specification Language CSS Cascading Style Sheets XSL Extensible Stylesheet Language

Patryk Czarnik 06 – Presentation XML 2010/11 7 / 55

slide-18
SLIDE 18

Stylesheets Separating content and presentation

Standards related to XML presentation

General:

Associating Style Sheets with XML documents

Stylesheet languages:

DSSSL (deprecated, applied to SGML) Document Style Semantics and Specification Language CSS Cascading Style Sheets XSL Extensible Stylesheet Language

Patryk Czarnik 06 – Presentation XML 2010/11 7 / 55

slide-19
SLIDE 19

Stylesheets Associating style with document

Associating Style Sheets with XML documents

W3C Recommendation Processing instruction xml-stylesheet One stylesheet

<?xml-stylesheet type="text/xsl" href="default.xsl"?>

Alternative stylesheets

<?xml-stylesheet title="Blue" type="text/css" href="blue.css" ?> <?xml-stylesheet title="Yellow" alternate="yes" type="text/css" href="yellow.css" ?> <?xml-stylesheet title="Big fonts" alternate="yes" type="text/css" href="big.css" ?>

Patryk Czarnik 06 – Presentation XML 2010/11 8 / 55

slide-20
SLIDE 20

Stylesheets Associating style with document

Associating Style Sheets with XML documents

W3C Recommendation Processing instruction xml-stylesheet One stylesheet

<?xml-stylesheet type="text/xsl" href="default.xsl"?>

Alternative stylesheets

<?xml-stylesheet title="Blue" type="text/css" href="blue.css" ?> <?xml-stylesheet title="Yellow" alternate="yes" type="text/css" href="yellow.css" ?> <?xml-stylesheet title="Big fonts" alternate="yes" type="text/css" href="big.css" ?>

Patryk Czarnik 06 – Presentation XML 2010/11 8 / 55

slide-21
SLIDE 21

1

Stylesheets Separating content and presentation Associating style with document

2

CSS Idea and applications CSS sheet structure Formatting

3

XSL Presentation by transformation XSLT — Introduction XSL-FO

slide-22
SLIDE 22

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-23
SLIDE 23

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-24
SLIDE 24

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-25
SLIDE 25

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-26
SLIDE 26

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-27
SLIDE 27

CSS Idea and applications

Cascading Style Sheets

Style sheets idea beginnings: 1970s

motivation — different printer languages and properties

CSS beginnings: 1994 CSS Level 1 Recommendation: December 1996 CSS Level 2 Recommendation: May 1998

implemented (more or less completly) in present-day internet browsers

CSS Level 3 — work still in progress:

modularisation, new features.

CSS 2.1 — Candidate Recommendation:

CSS 2 corrected and made less ambiguous also, a bit less ambitious (unsupported features thrown out)

Patryk Czarnik 06 – Presentation XML 2010/11 10 / 55

slide-28
SLIDE 28

CSS Idea and applications

CSS applications

First and main application: style for WWW sites Separation of content and formatting for HTML Simple stylesheets for XML Ideologically important

! especially from Level 2 ! according to web accessibility support for alternative presentation methods (e.g. voice) enabling reader to provide her/his own style (e.g. larger font and contrast colors for people with eyesight disability)

Patryk Czarnik 06 – Presentation XML 2010/11 11 / 55

slide-29
SLIDE 29

CSS Idea and applications

CSS applications

First and main application: style for WWW sites Separation of content and formatting for HTML Simple stylesheets for XML Ideologically important

! especially from Level 2 ! according to web accessibility support for alternative presentation methods (e.g. voice) enabling reader to provide her/his own style (e.g. larger font and contrast colors for people with eyesight disability)

Patryk Czarnik 06 – Presentation XML 2010/11 11 / 55

slide-30
SLIDE 30

CSS CSS sheet structure

Example XML

<department id="D07"> <name>Accountancy</name> <person position="accountant" id="102103"> <name>Dawid</name><surname>Paszkiewicz</surname> <phone type="office">+48223213203</phone> <phone type="mobile">+48501502503</phone> <email>paszkiewicz@superfirma.pll</email> </person> < person position="manager" id="102104"> <name>Monika</name><surname>Dom˙ załowicz</surname> <phone type="office">+48223213200</phone> <phone type="mobile">+48501502513</phone> <email>mdom@superfirma.pll</email> </person> ... </department>

Patryk Czarnik 06 – Presentation XML 2010/11 12 / 55

slide-31
SLIDE 31

CSS CSS sheet structure

Example stylesheet

person { display: block; margin: 10px auto 10px 30px; padding: 0.75em 1em; width: 200px; border-style: solid; border-width: 2px; border-color: #002288; background-color: #FFFFFF; } person[position=’manager’] { background-color: #DDFFDD; } name, surname { display: inline; font-size: larger; } person[position=’manager’] name { font-weight: bold; }

Patryk Czarnik 06 – Presentation XML 2010/11 13 / 55

slide-32
SLIDE 32

CSS CSS sheet structure

Result of formatting

Patryk Czarnik 06 – Presentation XML 2010/11 14 / 55

slide-33
SLIDE 33

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-34
SLIDE 34

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-35
SLIDE 35

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-36
SLIDE 36

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-37
SLIDE 37

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-38
SLIDE 38

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-39
SLIDE 39

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-40
SLIDE 40

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-41
SLIDE 41

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-42
SLIDE 42

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-43
SLIDE 43

CSS CSS sheet structure

Selectors

person — element name name, surname — two elements department name — descendant department > name — child A + B — element B directly following A name:first-child — ‘name’ being first child person[position] — test of attribute existence person[position=’manager’] — attribute value test person[position~=’manager’] — value is element of list person#k12 — ID-type attribute value

  • l.staff — equivalent to ol[class~=’staff’]

(HTML specific).

Patryk Czarnik 06 – Presentation XML 2010/11 15 / 55

slide-44
SLIDE 44

CSS CSS sheet structure

Style depending on media type

Example

@media print { person { background-color: white; font-family: serif; } } @media screen { person { background-color: yellow; font-family: sans-serif; } } @media all { person { border-style: solid; } }

Patryk Czarnik 06 – Presentation XML 2010/11 16 / 55

slide-45
SLIDE 45

CSS Formatting

display property

Kind of visual object representing an element Allowed values: inline, block, list-item, run-in inline-block table, table-cell, . . . , none Basic property in case of XML visualisation Rare exeplicit use for HTML (browsers know default values for HTML elements)

Patryk Czarnik 06 – Presentation XML 2010/11 17 / 55

slide-46
SLIDE 46

CSS Formatting

Boxes and positions

Blocks nested according to nesting of elements in document Blocks layout handled by CSS Custom positioning possible margin, padding — external and internal margins border-style, border-color, border-width — border properties position (static | relative | absolute | fixed) — positioning policy left, right, top, bottom — position coordinates width, height, min-width, max-height, . . . — size

Patryk Czarnik 06 – Presentation XML 2010/11 18 / 55

slide-47
SLIDE 47

CSS Formatting

Boxes, margins, borders

cite: W3C, CSS Level 2 Recommendation Patryk Czarnik 06 – Presentation XML 2010/11 19 / 55

slide-48
SLIDE 48

CSS Formatting

Margins and borders — example

person { display: block; margin: 10px auto 10px 30px; padding: 0.75em 1em; width: 200px; border-style: solid; border-width: 2px; border-color: #002288; background-color: #FFFFFF; }

Patryk Czarnik 06 – Presentation XML 2010/11 20 / 55

slide-49
SLIDE 49

CSS Formatting

Text and font properties

color, background-color, background-image — color and background, font-family — name or generic family of font font-size font-style, font-weight text-decoration text-align

Patryk Czarnik 06 – Presentation XML 2010/11 21 / 55

slide-50
SLIDE 50

CSS Formatting

Fonts and colors example

company { display: block; background-color: #EEFFFF; color: rgb(0, 0, 33%); font-family: ’Bookman’, ’Times New Roman’, serif; font-size: 14pt; } company > name { font-size: 1.5em; font-family: ’Verdana’, ’Arial’, sans-serif; font-weight: bold; text-align: center; } department > name { font-size: 1.3em; font-family: ’Verdana’, ’Arial’, sans-serif; font-weight: bold; font-style: italic; }

Patryk Czarnik 06 – Presentation XML 2010/11 22 / 55

slide-51
SLIDE 51

CSS Formatting

Generated content

Ability to show text not occurring in document text content Access to attribute values Automatic numbering Example

person:before { content: attr(position); } phone[type=’office’]:before { content: ’tel. ’; } phone[type=’mobile’]:before { content: ’kom. ’; }

Patryk Czarnik 06 – Presentation XML 2010/11 23 / 55

slide-52
SLIDE 52

CSS Formatting

Visualisation once again

Patryk Czarnik 06 – Presentation XML 2010/11 24 / 55

slide-53
SLIDE 53

CSS Formatting

CSS capabilities and advantages

Great visual formatting capabilities

especially for single elements

Elements distinguished basing on

name placement within document tree existence and value of attributes

Support

internet browsers authoring tools

Easy to write simple stylesheets :)

Patryk Czarnik 06 – Presentation XML 2010/11 25 / 55

slide-54
SLIDE 54

CSS Formatting

CSS capabilities and advantages

Great visual formatting capabilities

especially for single elements

Elements distinguished basing on

name placement within document tree existence and value of attributes

Support

internet browsers authoring tools

Easy to write simple stylesheets :)

Patryk Czarnik 06 – Presentation XML 2010/11 25 / 55

slide-55
SLIDE 55

CSS Formatting

CSS capabilities and advantages

Great visual formatting capabilities

especially for single elements

Elements distinguished basing on

name placement within document tree existence and value of attributes

Support

internet browsers authoring tools

Easy to write simple stylesheets :)

Patryk Czarnik 06 – Presentation XML 2010/11 25 / 55

slide-56
SLIDE 56

CSS Formatting

CSS capabilities and advantages

Great visual formatting capabilities

especially for single elements

Elements distinguished basing on

name placement within document tree existence and value of attributes

Support

internet browsers authoring tools

Easy to write simple stylesheets :)

Patryk Czarnik 06 – Presentation XML 2010/11 25 / 55

slide-57
SLIDE 57

CSS Formatting

CSS lacks and drawbacks

Only visualisation

no conversion to other formats

Some visual formatting issues

e.g. confusing block size computing (moreover, incorrectly performed in the most popular Web browser)

Not possible (CSS Level 2):

repeating the same content several times distinguish elements basing on their contents complex logical conditions data processing (e.g. summing numeric values) access to many documents at once

Some things require more work than they should, e.g.:

to show attribute values to change elements order

Patryk Czarnik 06 – Presentation XML 2010/11 26 / 55

slide-58
SLIDE 58

CSS Formatting

CSS lacks and drawbacks

Only visualisation

no conversion to other formats

Some visual formatting issues

e.g. confusing block size computing (moreover, incorrectly performed in the most popular Web browser)

Not possible (CSS Level 2):

repeating the same content several times distinguish elements basing on their contents complex logical conditions data processing (e.g. summing numeric values) access to many documents at once

Some things require more work than they should, e.g.:

to show attribute values to change elements order

Patryk Czarnik 06 – Presentation XML 2010/11 26 / 55

slide-59
SLIDE 59

CSS Formatting

CSS lacks and drawbacks

Only visualisation

no conversion to other formats

Some visual formatting issues

e.g. confusing block size computing (moreover, incorrectly performed in the most popular Web browser)

Not possible (CSS Level 2):

repeating the same content several times distinguish elements basing on their contents complex logical conditions data processing (e.g. summing numeric values) access to many documents at once

Some things require more work than they should, e.g.:

to show attribute values to change elements order

Patryk Czarnik 06 – Presentation XML 2010/11 26 / 55

slide-60
SLIDE 60

CSS Formatting

CSS lacks and drawbacks

Only visualisation

no conversion to other formats

Some visual formatting issues

e.g. confusing block size computing (moreover, incorrectly performed in the most popular Web browser)

Not possible (CSS Level 2):

repeating the same content several times distinguish elements basing on their contents complex logical conditions data processing (e.g. summing numeric values) access to many documents at once

Some things require more work than they should, e.g.:

to show attribute values to change elements order

Patryk Czarnik 06 – Presentation XML 2010/11 26 / 55

slide-61
SLIDE 61

1

Stylesheets Separating content and presentation Associating style with document

2

CSS Idea and applications CSS sheet structure Formatting

3

XSL Presentation by transformation XSLT — Introduction XSL-FO

slide-62
SLIDE 62

XSL Presentation by transformation

Presentation by transformation

In order to present a document, we can transform it into a format, that we know how to present. Examples of “presentable” XML formats:

XHTML XSL Formatting Objects

Patryk Czarnik 06 – Presentation XML 2010/11 28 / 55

slide-63
SLIDE 63

XSL Presentation by transformation

Extensible Stylesheet Language (XSL)

First generation of recommendations (1999 and 2001):

XSL (general framework, XSL Formatting Objects language) XSLT (transformation language) XPath (expression language, in particular paths addressing document fragments)

XSL stylesheet — transformation from XML to XSL-FO

usually for a class of documents (XML application) in practice, transformation to other formats, often (X)HTML

Patryk Czarnik 06 – Presentation XML 2010/11 29 / 55

slide-64
SLIDE 64

XSL Presentation by transformation

Extensible Stylesheet Language (XSL)

First generation of recommendations (1999 and 2001):

XSL (general framework, XSL Formatting Objects language) XSLT (transformation language) XPath (expression language, in particular paths addressing document fragments)

XSL stylesheet — transformation from XML to XSL-FO

usually for a class of documents (XML application) in practice, transformation to other formats, often (X)HTML

Patryk Czarnik 06 – Presentation XML 2010/11 29 / 55

slide-65
SLIDE 65

XSL Presentation by transformation

Extensible Stylesheet Language (XSL)

First generation of recommendations (1999 and 2001):

XSL (general framework, XSL Formatting Objects language) XSLT (transformation language) XPath (expression language, in particular paths addressing document fragments)

XSL stylesheet — transformation from XML to XSL-FO

usually for a class of documents (XML application) in practice, transformation to other formats, often (X)HTML

Patryk Czarnik 06 – Presentation XML 2010/11 29 / 55

slide-66
SLIDE 66

XSL Presentation by transformation

Extensible Stylesheet Language (XSL)

First generation of recommendations (1999 and 2001):

XSL (general framework, XSL Formatting Objects language) XSLT (transformation language) XPath (expression language, in particular paths addressing document fragments)

XSL stylesheet — transformation from XML to XSL-FO

usually for a class of documents (XML application) in practice, transformation to other formats, often (X)HTML

Patryk Czarnik 06 – Presentation XML 2010/11 29 / 55

slide-67
SLIDE 67

XSL Presentation by transformation

XSL Idea

cite: W3C, XSL 1.0 Patryk Czarnik 06 – Presentation XML 2010/11 30 / 55

slide-68
SLIDE 68

XSL XSLT — Introduction

XSLT — status

Created within XSL Applications beyond XML visualisation Version 1.0:

October 1999, connected with XPath 1.0 good support in tools and libraries

Version 2.0:

January 2007, connected with XPath 2.0 and XQuery 1.0, new features less software support

Patryk Czarnik 06 – Presentation XML 2010/11 31 / 55

slide-69
SLIDE 69

XSL XSLT — Introduction

XSLT — status

Created within XSL Applications beyond XML visualisation Version 1.0:

October 1999, connected with XPath 1.0 good support in tools and libraries

Version 2.0:

January 2007, connected with XPath 2.0 and XQuery 1.0, new features less software support

Patryk Czarnik 06 – Presentation XML 2010/11 31 / 55

slide-70
SLIDE 70

XSL XSLT — Introduction

XSLT — status

Created within XSL Applications beyond XML visualisation Version 1.0:

October 1999, connected with XPath 1.0 good support in tools and libraries

Version 2.0:

January 2007, connected with XPath 2.0 and XQuery 1.0, new features less software support

Patryk Czarnik 06 – Presentation XML 2010/11 31 / 55

slide-71
SLIDE 71

XSL XSLT — Introduction

XSLT — status

Created within XSL Applications beyond XML visualisation Version 1.0:

October 1999, connected with XPath 1.0 good support in tools and libraries

Version 2.0:

January 2007, connected with XPath 2.0 and XQuery 1.0, new features less software support

Patryk Czarnik 06 – Presentation XML 2010/11 31 / 55

slide-72
SLIDE 72

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-73
SLIDE 73

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-74
SLIDE 74

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-75
SLIDE 75

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-76
SLIDE 76

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-77
SLIDE 77

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-78
SLIDE 78

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-79
SLIDE 79

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-80
SLIDE 80

XSL XSLT — Introduction

XSLT — support

XSLT 2.0 processors:

Saxon

Java and .NET libraries, command-line applications free (Open Source) basic version commercial schema aware version

XML Spy (commercial windows application)

XSLT 1.0 processors:

internet browsers Xalan (Java and C++ libraries) xsltproc, part of libxml (C, basically for Linux) XML extensions of database engines . . .

Authoring tools

raw text editors and programmer environments (e.g. Eclipse) specialised tools — rather paid (e.g. XML Spy, oXygen).

Patryk Czarnik 06 – Presentation XML 2010/11 32 / 55

slide-81
SLIDE 81

XSL XSLT — Introduction

XSLT — sheet example

1/2

<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="utf-8" /> <xsl:template match="/"> <html> <head> <title>Staff list</title> </head> <body> <h1>Staff list</h1> <ul> <xsl:apply-templates select="//person"/> </ul> </body> </html> </xsl:template> ...

Patryk Czarnik 06 – Presentation XML 2010/11 33 / 55

slide-82
SLIDE 82

XSL XSLT — Introduction

XSLT — sheet example

2/2

... <xsl:template match="person"> <li> <xsl:value-of select="name"/> <xsl:value-of select="surname"/> (<xsl:value-of select="phone[type=’mobile’]"/>) </li> </xsl:template> </xsl:stylesheet>

Patryk Czarnik 06 – Presentation XML 2010/11 34 / 55

slide-83
SLIDE 83

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-84
SLIDE 84

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-85
SLIDE 85

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-86
SLIDE 86

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-87
SLIDE 87

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-88
SLIDE 88

XSL XSLT — Introduction

XSLT — stylesheet structure

Stylesheet (arkusz) consists of templates. Template (szablon) specifies how to transform a source node into result tree fragment Inside templates:

text and elements not from XSLT namespace → copied to result XSLT instructions → affects processing XPath in instructions → access to source document, arithmetic, conditions testing, . . .

XSLT can be considered a programming language specialised for XML documents transformation.

Patryk Czarnik 06 – Presentation XML 2010/11 35 / 55

slide-89
SLIDE 89

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-90
SLIDE 90

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-91
SLIDE 91

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-92
SLIDE 92

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-93
SLIDE 93

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-94
SLIDE 94

XSL XSLT — Introduction

XSLT — operation overview

Transformation on tree level Template for document node (root) started first

template exists even if we had not written it

apply-templates within a template — another templates called for other nodes, usually for children Templates matched according to node kind and name, location within document tree, etc. Additional features: conditional processing, copying values and nodes from source, generating new nodes, grouping, sorting, . . .

Patryk Czarnik 06 – Presentation XML 2010/11 36 / 55

slide-95
SLIDE 95

XSL XSLT — Introduction

XPath in XSLT

XPath expressions used for:

accessing nodes and values from source document computing values checking logical conditions

XPath constructions:

paths (navigating through document tree) arithmetic and logical operators functions for numbers. strings, etc. more in version 2.0

XSLT 1.0 uses XPath 1.0. XSLT 2.0 uses XPath 2.0.

Patryk Czarnik 06 – Presentation XML 2010/11 37 / 55

slide-96
SLIDE 96

XSL XSLT — Introduction

XPath in XSLT

XPath expressions used for:

accessing nodes and values from source document computing values checking logical conditions

XPath constructions:

paths (navigating through document tree) arithmetic and logical operators functions for numbers. strings, etc. more in version 2.0

XSLT 1.0 uses XPath 1.0. XSLT 2.0 uses XPath 2.0.

Patryk Czarnik 06 – Presentation XML 2010/11 37 / 55

slide-97
SLIDE 97

XSL XSLT — Introduction

XPath in XSLT

XPath expressions used for:

accessing nodes and values from source document computing values checking logical conditions

XPath constructions:

paths (navigating through document tree) arithmetic and logical operators functions for numbers. strings, etc. more in version 2.0

XSLT 1.0 uses XPath 1.0. XSLT 2.0 uses XPath 2.0.

Patryk Czarnik 06 – Presentation XML 2010/11 37 / 55

slide-98
SLIDE 98

XSL XSLT — Introduction

XPath in XSLT stylesheet — example

... <xsl:template match="person"> <li> <xsl:value-of select="name"/> <xsl:value-of select="./surname"/> (<xsl:value-of select="phone[type=’mobile’]"/>) </li> </xsl:template> </xsl:stylesheet>

Patryk Czarnik 06 – Presentation XML 2010/11 38 / 55

slide-99
SLIDE 99

XSL XSLT — Introduction

XSLT — transformation result

XSL Formatting Objects:

in line with XSL idea usable e.g. for printout

HTML and XHTML:

most popular usable for Web publication and on-screen view

Arbitrary XML:

translating to another (or new) format picking up or processing data (alternative to XQuery) XSLT as result of XSLT

Plain text

CSV and other text data formats scripts or configuration files plain representation of text documents

Patryk Czarnik 06 – Presentation XML 2010/11 39 / 55

slide-100
SLIDE 100

XSL XSLT — Introduction

XSLT — transformation result

XSL Formatting Objects:

in line with XSL idea usable e.g. for printout

HTML and XHTML:

most popular usable for Web publication and on-screen view

Arbitrary XML:

translating to another (or new) format picking up or processing data (alternative to XQuery) XSLT as result of XSLT

Plain text

CSV and other text data formats scripts or configuration files plain representation of text documents

Patryk Czarnik 06 – Presentation XML 2010/11 39 / 55

slide-101
SLIDE 101

XSL XSLT — Introduction

XSLT — transformation result

XSL Formatting Objects:

in line with XSL idea usable e.g. for printout

HTML and XHTML:

most popular usable for Web publication and on-screen view

Arbitrary XML:

translating to another (or new) format picking up or processing data (alternative to XQuery) XSLT as result of XSLT

Plain text

CSV and other text data formats scripts or configuration files plain representation of text documents

Patryk Czarnik 06 – Presentation XML 2010/11 39 / 55

slide-102
SLIDE 102

XSL XSLT — Introduction

XSLT — transformation result

XSL Formatting Objects:

in line with XSL idea usable e.g. for printout

HTML and XHTML:

most popular usable for Web publication and on-screen view

Arbitrary XML:

translating to another (or new) format picking up or processing data (alternative to XQuery) XSLT as result of XSLT

Plain text

CSV and other text data formats scripts or configuration files plain representation of text documents

Patryk Czarnik 06 – Presentation XML 2010/11 39 / 55

slide-103
SLIDE 103

XSL XSLT — Introduction

Transformations vs styles

cite: Szymon Zioło, XML i nowoczesne technologie zarz ˛ adzania tre´ sci ˛ a Patryk Czarnik 06 – Presentation XML 2010/11 40 / 55

slide-104
SLIDE 104

XSL XSL-FO

XSL Formatting Objects

XML application designed for visual presentation Focused on printed media

page templates (“masters”) automatic pagination

Normally, XSL-FO documents are not written by hand but generated via XSLT.

Patryk Czarnik 06 – Presentation XML 2010/11 41 / 55

slide-105
SLIDE 105

XSL XSL-FO

XSL Formatting Objects

XML application designed for visual presentation Focused on printed media

page templates (“masters”) automatic pagination

Normally, XSL-FO documents are not written by hand but generated via XSLT.

Patryk Czarnik 06 – Presentation XML 2010/11 41 / 55

slide-106
SLIDE 106

XSL XSL-FO

XSL Formatting Objects

XML application designed for visual presentation Focused on printed media

page templates (“masters”) automatic pagination

Normally, XSL-FO documents are not written by hand but generated via XSLT.

Patryk Czarnik 06 – Presentation XML 2010/11 41 / 55

slide-107
SLIDE 107

XSL XSL-FO

XSL-FO document structure

<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body /> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block>Hello World!</fo:block> </fo:flow> </fo:page-sequence> </fo:root>

Patryk Czarnik 06 – Presentation XML 2010/11 42 / 55

slide-108
SLIDE 108

Transformation to XSL-FO (1/2)

<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="xml" encoding="utf-8"/> <xsl:template match="/"> <fo:root> <fo:layout-master-set> <fo:simple-page-master master-name="A4" ...> ... </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="A4"> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates /> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> ... </xsl:stylesheet>

slide-109
SLIDE 109

Transformation to XSL-FO (2/2)

<xsl:template match="person"> <fo:block border-width="1.5pt" border-style="solid" border-color="#664400" background-color="#FFFFEE"> ... <fo:block> <xsl:apply-templates select="phone"/> </fo:block> </fo:block> </xsl:template> <xsl:template match="phone"> <fo:block> <xsl:choose> <xsl:when test="@type=’mobile’">kom. </xsl:when> <xsl:otherwise>tel. </xsl:otherwise> </xsl:choose> <xsl:apply-templates /> </fo:block> </xsl:template>

slide-110
SLIDE 110

XSL XSL-FO

Example visualisation

Ksi#gowo##

Dawid Paszkiewicz

  • tel. +48223213203
  • kom. +48501502503

paszkiewicz@superfirma.pll Monika Dom#a#owicz

  • tel. +48223213200
  • kom. +48501502513

mdom@superfirma.pll

Patryk Czarnik 06 – Presentation XML 2010/11 45 / 55

slide-111
SLIDE 111

XSL XSL-FO

page-master — page template

Single page layout A document may be split in many such pages. Example

<fo:simple-page-master master-name="A4" page-width="297mm" page-height="210mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm"> <fo:region-body margin="3cm"/> <fo:region-before extent="2cm"/> <fo:region-after extent="2cm"/> <fo:region-start extent="2cm"/> <fo:region-end extent="2cm"/> </fo:simple-page-master>

Patryk Czarnik 06 – Presentation XML 2010/11 46 / 55

slide-112
SLIDE 112

XSL XSL-FO

Content of pages

page-sequence results in a number of pages flow content split into pages static-content content repeated on all pages flow-name page region reference Stylesheet fragment

<fo:page-sequence master-reference="A4"> <fo:static-content flow-name="xsl-region-before"> Company <xsl:value-of select="name" /> staff </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates /> </fo:flow> </fo:page-sequence>

Patryk Czarnik 06 – Presentation XML 2010/11 47 / 55

slide-113
SLIDE 113

XSL XSL-FO

Content of pages

page-sequence results in a number of pages flow content split into pages static-content content repeated on all pages flow-name page region reference Stylesheet fragment

<fo:page-sequence master-reference="A4"> <fo:static-content flow-name="xsl-region-before"> Company <xsl:value-of select="name" /> staff </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates /> </fo:flow> </fo:page-sequence>

Patryk Czarnik 06 – Presentation XML 2010/11 47 / 55

slide-114
SLIDE 114

XSL XSL-FO

Content of pages

page-sequence results in a number of pages flow content split into pages static-content content repeated on all pages flow-name page region reference Stylesheet fragment

<fo:page-sequence master-reference="A4"> <fo:static-content flow-name="xsl-region-before"> Company <xsl:value-of select="name" /> staff </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates /> </fo:flow> </fo:page-sequence>

Patryk Czarnik 06 – Presentation XML 2010/11 47 / 55

slide-115
SLIDE 115

XSL XSL-FO

Content of pages

page-sequence results in a number of pages flow content split into pages static-content content repeated on all pages flow-name page region reference Stylesheet fragment

<fo:page-sequence master-reference="A4"> <fo:static-content flow-name="xsl-region-before"> Company <xsl:value-of select="name" /> staff </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates /> </fo:flow> </fo:page-sequence>

Patryk Czarnik 06 – Presentation XML 2010/11 47 / 55

slide-116
SLIDE 116

XSL XSL-FO

XSL-FO tree elements

Block level

block list-block, list-item, list-item-label table, table-row, table-cell, . . .

Inline level

inline, character external-graphics

Special features

basic-link, bookmark footnote flow . . .

Patryk Czarnik 06 – Presentation XML 2010/11 48 / 55

slide-117
SLIDE 117

XSL XSL-FO

Style of visual elements

CSS roots of visual formatting model Attributes for style properties:

margin, padding, border-style . . . background-color, background-image . . . font-family, font-weight, font-style, font-size . . . text-align, text-align-last, text-indent, start-indent, end-indent, wrap-option, break-before . . .

Patryk Czarnik 06 – Presentation XML 2010/11 49 / 55

slide-118
SLIDE 118

XSL XSL-FO

Lists — example

<fo:list-block> <fo:list-item> <fo:list-item-label> <fo:block>First name: </fo:block> </fo:list-item-label> <fo:list-item-body> <fo:block margin-left="15em">Dawid</fo:block> </fo:list-item-body> </fo:list-item> <fo:list-item> <fo:list-item-label> <fo:block>Surname: </fo:block> </fo:list-item-label> <fo:list-item-body> <fo:block margin-left="15em">Paszkiewicz</fo:block> </fo:list-item-body> </fo:list-item> </fo:list-block>

Patryk Czarnik 06 – Presentation XML 2010/11 50 / 55

slide-119
SLIDE 119

XSL XSL-FO

Example visualisation — lists

Ksi#gowo## * Stanowisko: starszy referent Imi#: Dawid Nazwisko: Paszkiewicz tel.: +48223213203 kom.: +48501502503 Email: paszkiewicz@superfirma.pll * Stanowisko: kierownik Imi#: Monika Nazwisko: Dom#a#owicz tel.: +48223213200 kom.: +48501502513 Email: mdom@superfirma.pll

Patryk Czarnik 06 – Presentation XML 2010/11 51 / 55

slide-120
SLIDE 120

XSL XSL-FO

Tables — example

<fo:table border="solid 2pt black"> <fo:table-header> <fo:table-row> <fo:table-cell><fo:block font-weight="bold">Surname </fo:block></fo:table-cell> <fo:table-cell><fo:block font-weight="bold">First name </fo:block></fo:table-cell> ... </fo:table-row> </fo:table-header> <fo:table-body> <fo:table-row> <fo:table-cell><fo:block>Paszkiewicz</fo:block></fo:table-cell> <fo:table-cell><fo:block>Dawid</fo:block></fo:table-cell> ... </fo:table-row> ...

Patryk Czarnik 06 – Presentation XML 2010/11 52 / 55

slide-121
SLIDE 121

XSL XSL-FO

Example visualisation — table

Patryk Czarnik 06 – Presentation XML 2010/11 53 / 55

slide-122
SLIDE 122

XSL XSL-FO

XSL-FO — support

Commercial software:

Antenna House XSL Formatter RenderX Ecrion Lunasil LTD Xinc . . .

Open software:

Apache FOP xmlroff

Patryk Czarnik 06 – Presentation XML 2010/11 54 / 55

slide-123
SLIDE 123

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-124
SLIDE 124

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-125
SLIDE 125

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-126
SLIDE 126

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-127
SLIDE 127

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-128
SLIDE 128

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55

slide-129
SLIDE 129

XSL XSL-FO

XSL-FO — critique

Main XSL-FO advantages

“in line” with XSL easy and direct way to obtain printout (e.g. PDF) from XML data general advantages of stylesheets over “hard-coded” formatting

Main XSL-FO disadvantages

too complex for simple needs too limited for advanced needs

lack of pagination feedback, cannot say “if these two elements occur on the same

  • page. . . ”

hard to format particular elements in a very special way (thus this is a general drawback of using stylesheets)

Patryk Czarnik 06 – Presentation XML 2010/11 55 / 55