/usr/share/doc/openjade1.3/transform.htm is in openjade1.3 1.3.2-13ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239  | <!-- -*- sgml -*- -->
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>The OpenJade SGML/XML backend</title>
</head>
<body background="images/background.gif" bgcolor="#FFFFFF">
<p><font face="Geneva, Arial"><img src="images/dsssltitle.gif"
alt="OpenJade" vspace="10" width="750" height="60"> </font></p>
<div align="center"><center>
<table border="0">
    <tr>
        <td><font face="Geneva, Arial"><img
        src="images/space.gif" alt="" width="145" height="10"></font></td>
        <td><h1><font face="Geneva, Arial">The OpenJade SGML/XML backend</font></h1>
        <h3><font face="Arial">Created by James Clark</font></h3>
        <p><font face="Geneva, Arial">OpenJade does not support the
        DSSSL Transformation Language. However, it provides some
        simple, non-standardized extensions to the DSSSL Style
        Language that allow it to be used for SGML
        transformations.</font> </p>
        <p><font face="Geneva, Arial">These extensions are used
        in conjunction with the SGML backend which is selected
        with the <samp>-t sgml</samp> or <samp>-t xml</samp>
        options. Unlike other backends, the SGML backend writes
        its output to the standard output.</font> </p>
        <p><font face="Geneva, Arial">The <samp>-t xml</samp>
        option makes empty elements and processing instructions
        use the XML syntax. Note that the XML declaration is not
        automatically emitted.</font> </p>
        <p><font face="Geneva, Arial">The extensions consist of a
        collection of flow object classes that are used instead
        of the standard DSSSL-defined flow object classes:</font>
        </p>
        <dl>
            <dt><font face="Geneva, Arial"><code>element</code></font>
            </dt>
            <dt><font face="Geneva, Arial"><code>empty-element</code></font>
            </dt>
            <dd><font face="Geneva, Arial">Each of these flow
                objects results in an element in the output. The <code>element</code>
                flow object is a compound flow object (one that
                can have child flow objects). Both a start-tag
                and an end-tag are generated for this flow object.
                The <code>empty-element</code> is an atomic flow
                object (one that cannot have child flow objects).
                Only a start-tag is output for this. It should
                should be used for elements with a declared
                content of EMPTY or with a content reference
                attribute. Both of these flow objects support the
                following non-inherited characteristics:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>gi</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is a
                        string-valued characteristic that
                        specifies the element's generic
                        identifier. It defaults to the generic
                        identifier of the current node.</font> </dd>
                    <dt><font face="Geneva, Arial"><code>attributes</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This specifies
                        the element's attributes as a list of
                        lists each of which consists of exactly
                        two strings, the first specifying the
                        attribute name and the second the
                        attribute value. It defaults to the empty
                        list.</font> </dd>
                </dl>
            </dd>
            <dd> </dd>
            <dt><font face="Geneva, Arial"><code>processing-instruction</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an atomic flow
                object that results in a processing instruction.
                It supports the following non-inherited
                characteristics:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>data</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is a
                        string-valued characteristic that
                        specifies the content of the processing
                        instruction. It defaults to the empty
                        string.</font> </dd>
                </dl>
            </dd>
            <dt><font face="Geneva, Arial"><code>document-type</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an atomic flow
                object that results in a DOCTYPE declaration. It
                supports the following non-inherited
                characteristics:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>name</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is a
                        string-valued characteristic that
                        specifies the name of the document type (which
                        must be the same as the name of the
                        document element). It must not be omitted.</font>
                    </dd>
                    <dt><font face="Geneva, Arial"><code>system-id</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is a
                        string-valued characteristic that
                        specifies the system identifier of the
                        document type. If non-empty, this will be
                        used as the system identifier in the
                        doctype declaration. The default value is
                        the empty string.</font> </dd>
                    <dt><font face="Geneva, Arial"><code>public-id</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is a
                        string-valued characteristic that
                        specifies the public identifier of the
                        document type. If non-empty, this will be
                        used as the public identifier in the
                        doctype declaration. The default value is
                        the empty string.</font> </dd>
                </dl>
            </dd>
            <dt><font face="Geneva, Arial"><code>entity</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an compound
                flow object that stores its content in a separate
                entity. It supports the following non-inherited
                characteristic:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>system-id</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">The system
                        identifier of the entity. For now this is
                        treated as a filename not as an FSI.</font>
                    </dd>
                </dl>
                <p><font face="Geneva, Arial">Note that no entity
                reference or declaration is emitted.</font> </p>
            </dd>
            <dt><font face="Geneva, Arial"><code>entity-ref</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an atomic flow
                object that results in an entity reference. It
                supports the following non-inherited
                characteristic:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>name</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">The name of
                        the entity.</font> </dd>
                </dl>
            </dd>
            <dt><font face="Geneva, Arial"><code>formatting-instruction</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an atomic flow
                object that inserts characters into the output
                without change. It supports the following non-inherited
                characteristic:</font> <dl>
                    <dt><font face="Geneva, Arial"><code>data</code></font>
                    </dt>
                    <dd><font face="Geneva, Arial">This is the
                        string to be inserted.</font> </dd>
                </dl>
                <p><font face="Geneva, Arial">It differs from
                normal data characters in the <code>&</code>,
                <code><</code> and <code>></code> will not
                be escaped.</font> </p>
            </dd>
        </dl>
        <p><font face="Geneva, Arial">There is also the following
        characteristic:</font> </p>
        <dl>
            <dt><font face="Geneva, Arial"><code>preserve-sdata?</code></font>
            </dt>
            <dd><font face="Geneva, Arial">This is an inherited
                boolean characteristic that applies to character
                flow objects. When true, if the current-node for
                the character flow object was an sdata node, then
                the character will be output as a reference to an
                entity with the same name. The initial value is #f.</font>
            </dd>
        </dl>
        <p><font face="Geneva, Arial">Each of these flow object
        classes must be declared using <code>declare-flow-object-class</code>
        in any DSSSL specification that makes use of it. A
        suitable set of declarations is:</font> </p>
        <pre><font face="Geneva, Arial">
(declare-flow-object-class element
  "UNREGISTERED::James Clark//Flow Object Class::element")
(declare-flow-object-class empty-element
  "UNREGISTERED::James Clark//Flow Object Class::empty-element")
(declare-flow-object-class document-type
  "UNREGISTERED::James Clark//Flow Object Class::document-type")
(declare-flow-object-class processing-instruction
  "UNREGISTERED::James Clark//Flow Object Class::processing-instruction")
(declare-flow-object-class entity
  "UNREGISTERED::James Clark//Flow Object Class::entity")
(declare-flow-object-class entity-ref
  "UNREGISTERED::James Clark//Flow Object Class::entity-ref")
(declare-flow-object-class formatting-instruction
  "UNREGISTERED::James Clark//Flow Object Class::formatting-instruction")
(declare-characteristic preserve-sdata?
  "UNREGISTERED::James Clark//Characteristic::preserve-sdata?"
  #f)
</font></pre>
        <p><font face="Geneva, Arial">Here's a simple example
        that does the identity transformation:</font> </p>
        <pre><font face="Geneva, Arial">
<!doctype style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN">
(declare-flow-object-class element
  "UNREGISTERED::James Clark//Flow Object Class::element")
(define (copy-attributes #!optional (nd (current-node)))
  (let loop ((atts (named-node-list-names (attributes nd))))
    (if (null? atts)
        '()
        (let* ((name (car atts))
               (value (attribute-string name nd)))
          (if value
              (cons (list name value)
                    (loop (cdr atts)))
              (loop (cdr atts)))))))
(default (make element
               attributes: (copy-attributes)))
</font></pre>
        <p><font face="Geneva, Arial">Note that this does not
        deal with empty elements nor processing instructions, nor
        does it include a doctype declaration.</font> </p>
        </td>
    </tr>
</table>
</center></div>
<p> </p>
</body>
</html>
 |