[Accessibility conventions are described at the bottom of the page]
*** This is a free preview excerpt of a commercial publication. ***

1. Introducing XSL-FO
[> 2.][^^^]
1.0 Contrasting browsed vs. paginated presentations
[> 1.1][> 2.][< 1.][^^][^^^]
Consider two media for presenting information to users
[[1] - presenting information in a browser window is fundamentally different than presenting the same information in printed form
 [1] - browser screens are dynamic
[[2] - navigating around information is the responsibility of the browser
[[3] - in response to user actions
][2] - the page dimensions can be changed by the reader of the information
[[3] - the width can be modified after the information is presented, requiring the information to be reflowed in the new dimensions
 [3] - the length of the screen is essentially infinite and grows to accommodate the amount of information on the page
]][1] - printed pages are static
[[2] - navigating around information is the responsibility of the reader
[[3] - based on cues given in the printed text
][2] - the page dimensions are fixed by the presenter of the information
]]
Maintaining information separately for two presentations is troublesome
[[1] - perhaps the HTML presentation is authored separately from the printed presentation
[[2] - since the navigation tools are different, each authoring tool gives the author a different user interface and authoring options
][1] - the lack of a common source of content introduces maintenance challenges
[[2] - problems when ensuring changes in one are reflected in the other
][1] - best to have a single source of information to rearrange and re-label for different presentations
]
Consider a fragment of training content presented in a browser screen
[[1] - hyperlinks are recognized by the underscored text in blue
[[2] - in a black and white print this may be confused with the underscored text at the top of the window that isn't a hyperlink
][1] - a hyperlink with focus exposes the target of the hyperlink in the status line of the window
[[2] - requires interaction with the browser to check each of the possible target locations
][1] - traversing the hyperlink involves interacting with the user agent
]
[Figure 1.1: Training information in an HTML window
A screen shot shows a fragment of training information in bullet form as the focus of a browser window. The scroll thumb is small revealing the snippet is a small portion of the entire page. Three blue underlined hyperlinks are shown in the text, the middle one having the focus as indicated by a dotted box around the link drawn by the user agent. The status bar at the bottom of the window exposes the target of the hyperlink as the name of an anchor in a separate HTML file.
]
Consider the training information being authored in HTML for the web presentation:
[Example 1-1: An example of HTML markup
01  <p>Numerous property data types</p>
02  <ul>
03   <li>summarized in <a href="module-D.htm#datatypes">Property
04  data types</a></li>
05   <li>simple-valued and compound-valued values</li>
06  </ul>
07  <p>Numerous functions available for expressions</p>
08  <ul>
09  ...
10  <h2><a name="datatypes">Property data types</a></h2>
]
Of note:
[[1] - lines 3-4 show the markup for the highlighted hyperlink
[[2] - the title of the referenced item in line 10 is copied as the "clickable text" of the canvas
 [2] - changing the title requires changing all references to the title
][1] - the entire web page could span dozens of printed pages
[[2] - the hyperlink information is lost
[[3] - no indication of where a target of a hyperlink is found
][2] - no tools for navigating the collection of pages
]]
Authoring the information in a word processor would require similar duplication of information
[[1] - changes to a title requiring changes to all references to the title
 [1] - adding of page numbers and page number citations
[[2] - necessitating distinct content from the web-based content
]]
Consider an XML representation of the same training material
[[1] - we can use any vocabulary of element types and attributes to represent the concepts of training information
 [1] - the hyperlink to another location can be an empty element
[[2] - all that is needed is to know what is being referenced not how it is presented
]]
[Example 1-2: An example of XML markup
01  <course>
02   <title>Practical Formatting Using XSL-FO</title>
03  ...
04  <module id="basic">
05   <title>Basic concepts of XSL-FO</title>
06   <lesson id="vocab">
07   <title>Formatting object XML vocabulary</title>
08   <frame id="propexp">
09   <title>Property value expressions</title>
10  ...
11   <point>summarized in <ref idref="funcname"/></point>
12  </points>
13  <para>Numerous property data types</para>
14  <points>
15   <point>summarized in <ref idref="datatypes"/></point>
16   <point>simple-valued and compound-valued values</point>
17  </points>
18  <para>Numerous functions available for expressions</para>
19  <points>
20   <point>summarized in <ref idref="funcname"/></point>
21  ...
22   </frame>
23   </lesson>
24  </module>
25  ...
26   <frame id="funcname">
27   <title>Functions summarized by name</title>
28  ...
29   </frame>
30  ...
31   <frame id="datatypes">
32   <title>Property data types</title>
33  ...
34   </frame>
35  ...
36  </course>
]
Of note:
[[1] - the same hyperlink is an empty XML element on line 15
[[2] - attribute points to the frame being referenced
][1] - transformation can obtain the title of the referenced section at presentation time
[[2] - only one place to maintain the title
 [2] - guarantees consistency in presentation during maintenance
]]
The Extensible Stylesheet Language Transformations (XSLT) is used for presentation and transformation
[[1] - rearranges instances of XML information into instances of other vocabularies
 [1] - e.g. an XSLT tool reads our XML instances and produces an instance of the HTML vocabulary
[[2] - the stylesheet dictates how the HTML is created with the hyperlink reference for traversal and the clickable content for the canvas
]]
Consider the same training information presented in the printed form
[[1] - basic presentation of the material is similar to that of the browser presentation
 [1] - content is paginated over a number of fixed-size pages
[[2] - navigation tools are different for the collection of pages
]]
[Figure 1.2: Training information in a printable page
A picture of a printed page is shown. The earlier fragment of training information is found in the middle of the page. The page represents the entire content of the <frame> element in which the fragment was found.
At the top left of the page is the context of the frame shown by reporting the module and lesson in which the frame is found. At the bottom right of the page is the page number and total number of pages.
]
Of note:
[[1] - the hyperlinks are rendered with the page number of the target of each reference
 [1] - the page number is shown at the bottom right of the page for navigation
 [1] - the module and lesson information is shown at the top left for context
]
The Extensible Stylesheet Language Formatting Objects (XSL-FO) XML vocabulary is used to express pagination semantics
[[1] - architecturally the same as when we use HTML to express browser semantics
 [1] - we learn the XSL-FO vocabulary representing the XSL-FO semantics
[[2] - e.g. how to express a hyperlink as a page number citation
 [2] - same as we needed to know what HTML can do in a browser
[[3] - e.g. how to express a hyperlink as an anchor
]][1] - instances of our XML vocabularies are transformed into instances of the XSL-FO vocabulary
[[2] - e.g. transforming our <ref/> elements into <[page-number-citation]/> elements
 [2] - same process as is needed to go from XML to HTML
[[3] - e.g. transforming our <ref/> elements into <a> elements
]][1] - an XSL-FO engine interprets the XSL-FO semantics to produce the printable results
[[2] - e.g. an XSL-FO tool reads our XSL-FO and produces a PDF file
 [2] - same process as is needed by a web browser for HTML
[[3] - e.g. a browser user agent reads our HTML and renders a screen window
]][1] - only difference is the selection of presentation semantics appropriate for the desired target medium
]
XSL-FO offers many nuances of flow and formatting semantics
[[1] - fine-grained control over layout and appearance
]
Audiences for browser windows can be different than those for printed information
[[1] - a whole constituency of users does not accept reading information from a computer screen
[[2] - will only read information from printed pages
][1] - those who do read lengthy documents from browser windows periodically need a printed rendition
[[2] - the navigation tools on the screen are not translated to the paper form in a browser print request
][1] - often the different perspective requires a different arrangement
[[2] - not just a decorated version of the same arrangement of the information
]]
1.1 Fine-grained control of layout nuances
[> 1.2][< 1.0][^^][^^^]
1.1.1 Fine-grained control of layout nuances
[> 1.2][> 2.][< 1.0][^^][^^^]
XSL-FO gives control to the stylesheet writer over many layout constructs useful in printing applications
[[1] - pagination
[[2] - static content (headers and footers)
 [2] - page sequences (odd/even, first/middle/last, blank/not-blank)
][1] - blocks of lines and inline areas
 [1] - lists and parallel blocks
 [1] - images (external and embedded)
 [1] - hyperlinks (internal and external)
 [1] - leaders (elastic and inelastic)
 [1] - floats, footnotes, containers
 [1] - tables
 [1] - change bars
 [1] - bookmarks
 [1] - indexes
 [1] - bi-directional text protection
]
1.2 The many existing deployments of XSL-FO
[> 2.][< 1.1.1][^^][^^^]
1.2.1 The many existing deployments of XSL-FO
[> 2.][< 1.1.1][^^][^^^]
Vendors report wide-spread deployment of this technology in real-world high-volume publishing requirements
[[1] - what follows is only a sample list of applications
 [1] - check vendor sites for case studies
]
Day-to-day life touches on documents meeting stringent layout requirements
[[1] - presentation and training material handouts
 [1] - high-school student study guides
 [1] - online train tickets in Germany
 [1] - account statements and telephone bills
 [1] - technical manuals, user guides and maintenance documentation
[[2] - e.g. Daimler and Nokia
][1] - share portfolio overviews and 401K statements
 [1] - printed box forms for manual entry
 [1] - multilingual pension letters
 [1] - bulk mail applications
 [1] - mortgage documents
 [1] - commercial books
[[2] - e.g. Prentice Hall and O'Reilly Safari
]]
Government use:
[[1] - U.S. intelligence documents
[[2] - publishing in XSL-FO with a copy from the XSL-FO into HTML
][1] - legislation (bills, acts and amendments)
 [1] - "The Daily Threat Assessment" (U.S.)
[[2] - varying detail and classification levels; distribution to the Joint Chiefs of Staff
][1] - government forms
 [1] - XBRL reports for Federal Financial Examination Council
 [1] - Medicare-related applications and enrollment booklets
]
Public use:
[[1] - digitally-signed XSL-FO stylesheets
[[2] - allows a commercial-grade tool to be distributed freely for only signed stylesheets
[[3] - any change to the stylesheet prevents the processor from using it
][2] - protects vendor from a customer using a publicly-available tool for private use
][1] - printing UBL invoices using the United Nations Layout Key
[[2] - see Crane's web site for an example
]]

*** This is a free preview excerpt of a commercial publication. ***

This is an accessible version of Crane's commercial training material. The content has been specifically designed to assist screen reader software in viewing the entire textual content. Figures are replaced with text narratives.

Navigation hints are in square brackets:
[Tx.x] and [Fx.x] are textual representations of the applicability icons;
[digit] indicates list depth for nested lists;
[link [URL]] indicates the URL of a hyperlink if different than link;
[EXAMPLE] indicates an example listing of code;
[FIGURE] indicates the presence of a figure replaced by its description;
[>] jumps forward;
[<] jumps backward;
[^] jumps to start of the section;
[^^] jumps to the start of the chapter;
[^^^] jumps to the table of contents.
Suggestions for improvement are welcome: [info@CraneSoftwrights.com]
Book sales: [http://www.CraneSoftwrights.com/links/trn-acc.htm]
Information: [http://www.CraneSoftwrights.com/links/info-acc.htm]
This content is protected by copyright and, as there are no means to protect this accessible version from plagiarism, please do not make any commercial edition available to others.

+//ISBN 978-1-894049::CSL::Courses::PFUX//DOCUMENT Practical Formatting Using XSL-FO 2008-01-27 17:30UTC//EN
Practical Formatting Using XSL-FO
Seventh Edition - 2008-01-27
ISBN 978-1-894049-19-1
Copyright © Crane Softwrights Ltd.