[Accessibility conventions are described at the bottom of the page]
*** This is a free preview excerpt of a commercial publication. ***
D. Tool questions
[< C.2.4][^^^]
D.0 Sample questions for vendors
[> D.1][< D.][^^][^^^]
Answers to the following questions may prove useful when trying to better understand a product offering from a vendor. The
specific questions are grouped under topical questions. This by no means makes up a complete list of questions as you may
have your own criteria to add, nonetheless, they do cover aspects of XSLT and XQuery that may impact on the stylesheets and
transformation specifications you write.
[[1] - how is the product identified?
[[2] - what is the name of the processor in product literature?
[2] - what value is returned by the system properties?
[[3] - recall [The transformation environment - Section 5.0]
][2] - what version of specification is supported?
[[3] - returned by the xsl:version system property in XSLT
][2] - to which email address or URL are questions forwarded for more information in general?
[2] - to which email address or URL are questions forwarded for more information specific to the answers to these technical questions?
][1] - what output serialization methods are supported for the result node tree?
[[2] - XML?
[2] - HTML?
[2] - text?
[2] - XHTML?
[2] - XSL formatting and flow objects?
[[3] - in what ways are the formatting objects interpreted (direct to screen? HTML? PostScript? PDF? TeX? etc.)?
][2] - other non-XML text-oriented methods different than the standard text method (e.g. NXML by XT)?
[[3] - what are the semantics and vocabulary for each such environment?
][2] - other custom serialization methods?
[[3] - what are the semantics and vocabulary for each such environment?
][2] - what customization is available to implement one's own interpretation of result tree semantics?
[[3] - is there access to the result tree as either a DOM tree or SAX events?
[3] - does such access still oblige serialization to an external file?
]]]
[[1] - how does the processor differ from the W3C working drafts or recommendations?
[[2] - upon which dated W3C documents describing the specifications is the software based?
[2] - which constructs or functions are not implemented at all?
[2] - which constructs or functions are implemented differently than in the W3C description?
[2] - what namespace URI values are used for those available constructs or functions described differently or not described in W3C
version?
[2] - is the W3C recommended stylesheet association technique implemented for the direct processing XML instances?
[[3] - if so, can it be selectively engaged and disengaged?
]][1] - are any extension functions or extension elements implemented?
[[2] - what is the recognized extension namespace and the utility of the extension functions and elements implemented?
[[3] - is there an extension function for the conversion of a result tree fragment to a node-set?
[3] - [T1.0]are there any built-in extension functions or extension elements for the writing of templates to an output URL?
][2] - can additional extension functions or extension elements (beyond those supplied by the vendor) be added by the user?
[[3] - how so?
][2] - are any extensions defined by exslt.org supported?
]]
[[1] - how are particular facilities implemented?
[[2] - what is the implementation in the processor of indent="yes" for <xsl:output>?
[2] - is a method provided for defining top-level <xsl:param> constructs at invocation time?
[2] - how is the <xsl:message> construct implemented?
[2] - which UCS/Unicode format tokens are supported for <xsl:number>?
[2] - which lang= values are supported for <xsl:sort>?
[2] - [T2.0]what is the URI syntax for data projection for input?
[2] - [T2.0]which collations are supported for string comparison?
[2] - [T2.0]is the processor schema-aware?
[2] - [T2.0]what are the details of the collection URI syntax?
][1] - how are errors reported or gracefully handled?
[[2] - regarding template conflict resolution?
[2] - regarding improper content of result tree nodes (e.g. comments, processing instructions)?
[2] - regarding invocation of unimplemented functions or features?
[2] - regarding any other areas?
[2] - can fatal error reporting (e.g. template conflict resolution or other errors) be selectively turned on to diagnose stylesheets
targeted for use with other XSLT processors that fail on an error?
]]
[[1] - what are the details of the implementation and invocation of the processor?
[[2] - how are user values passed in to the transformation?
[2] - which hardware/operating system platforms support the processor?
[2] - which character sets are supported for the input file encoding and output serialization?
[2] - what is the XML processor used within the XSLT processor?
[[3] - does the XML processor support minimally declared internal declaration subsets with only attribute list declarations of ID-typed attributes?
[3] - does the XML processor support XML Inclusions (Xinclude)?
[3] - does the XML processor support catalogues for public identifiers?
[3] - does the XML processor validate the source file?
[[4] - can this be turned on and off?
]][2] - can the processor be embedded in other applications?
[[3] - can the processor be configured as a servlet in a web server?
[3] - is there access to the result tree as either a DOM tree or SAX events?
][2] - is the source code of the processor available?
[[3] - in what language is the processor written?
][2] - for Windows-based environments:
[[3] - can the processor be invoked from the MSDOS command-line box?
[3] - can the processor be invoked from a GUI interface?
[3] - what other methods of invocation can be triggered (DLL, RPC, etc.)?
[3] - can error messages be explicitly redirected to a file using an invocation parameter (since, for example, Windows-95 does not
allow for redirection of the standard error port to a file)?
][2] - does the processor take advantage of parallelism when executing the stylesheet, or is the stylesheet always processed serially?
[2] - does the processor implement tail recursion for called named templates?
[2] - does the processor implement lazy evaluation for XPath location path expression evaluation?
]]
D.1 XSLStyle™
[< D.0][^^][^^^]
D.1.1 XSLStyle™
[< D.0][^^][^^^]
An XSLT stylesheet embedded documentation methodology
[[1] - an XSLT stylesheet is an XML document
[1] - one can embed a documentation vocabulary in an XSLT stylesheet through standard XML namespace techniques
[1] - a stylesheet for stylesheets renders the embedded documentation to HTML and CSS
[1] - freely downloadable environment from the Crane Softwrights Ltd. web site as a developer resource
]
Can invoke as a separate stylesheet or through embedded association
[[1] - see [http://www.w3.org/TR/xml-stylesheet/]
[1] - recall [Stylesheet association - Section 1.1.11]
]
Embedded documentation uses a Crane namespace for structure
[[1] - DocBook for content
[[2] - see [http://www.docbook.org/] for details
][1] - DITA for content
[[2] - see [http://dita.xml.org/] for details
][1] - XHTML for content
]
Enforces "stylesheet writing rules" on the writer of the stylesheet
[[1] - adds rigor to the stylesheet
[1] - e.g. all top-level constructs must be separately documented
[1] - e.g. all parameters of all templates and functions must be separately documented
[1] - e.g. all parameters of all templates and functions must have declared types
[1] - e.g. all named top-level constructs must be namespace qualified
[1] - many other rules
]
Resulting HTML report is similar to an enhanced Javadoc report
[[1] - encompasses the complete import tree
[1] - alphabetized index of all named top-level constructs
[1] - deficiencies report
[[2] - fully hyperlinked content
[2] - one could institute a development rule of not allowing the check-in of a stylesheet until the library is fully documented
according to the writing rules
]]
An example fragment:
[Example D-1: 01 <?xml-stylesheet type="text/xsl" href="xslstyle-docbook.xsl"?>
02 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
03 xmlns:xs="http://www.CraneSoftwrights.com/ns/xslstyle"
04 xmlns:i="internal-namespace"
05 exclude-result-prefixes="xs i"
06 version="1.0">
07
08 <!--an example import-->
09 <xsl:import href="docbookex1.xsl"/>
10 <!--another example import-->
11 <xsl:import href="docbookex2.xsl"/>
12
13 <xs:doc info="$Id: ex.xsl,v 1.1 2007/09/16 23:32:01 G. Ken Holman Exp $"
14 filename="ex.xsl" global-ns="xs" internal-ns="i" vocabulary="DocBook">
15 <xs:title>XSLStyle™ illustration for the DocBook vocabulary</xs:title>
16 <para>
17 XSLStyle™ implements a methodology for styling stylesheets
18 using a documentation vocabulary into formatted documentation and
19 rigourous completeness reports.
20 </para>
21 <programlisting>
22 Copyright (C) - Crane Softwrights Ltd.
23 ...
24 <xs:template>
25 <para>The formatting of a single entry in the import tree.</para>
26 <xs:param name="href">
27 <para>The URI used to access the module for this entry.</para>
28 </xs:param>
29 </xs:template>
30 <xsl:template name="i:format-tree-entry">
31 <xsl:param name="href"/>
32 <listitem>
33 ...
]
[Figure 13.1: An example rendering for XSLStyle
A screen shot of a web screen reveals the rendered report
]
*** 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::PTUX//DOCUMENT Practical Transformation Using XSLT and XPath 2011-02-11 21:00UTC//EN
Practical Transformation Using XSLT and XPath
Fourteenth Edition - 2011-02-11
ISBN 978-1-894049-24-5
Copyright © Crane Softwrights Ltd.