Sophie

Sophie

distrib > Mandriva > 2009.1 > x86_64 > media > main-release > by-pkgid > bb276a97131049c0181dac996e2a1ea0 > files > 112

openjade-1.3.3-0.pre1.6mdv2009.1.x86_64.rpm

<!-- -*- 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>&nbsp;</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>&amp;</code>,
                <code>&lt;</code> and <code>&gt;</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
  &quot;UNREGISTERED::James Clark//Flow Object Class::element&quot;)
(declare-flow-object-class empty-element
  &quot;UNREGISTERED::James Clark//Flow Object Class::empty-element&quot;)
(declare-flow-object-class document-type
  &quot;UNREGISTERED::James Clark//Flow Object Class::document-type&quot;)
(declare-flow-object-class processing-instruction
  &quot;UNREGISTERED::James Clark//Flow Object Class::processing-instruction&quot;)
(declare-flow-object-class entity
  &quot;UNREGISTERED::James Clark//Flow Object Class::entity&quot;)
(declare-flow-object-class entity-ref
  &quot;UNREGISTERED::James Clark//Flow Object Class::entity-ref&quot;)
(declare-flow-object-class formatting-instruction
  &quot;UNREGISTERED::James Clark//Flow Object Class::formatting-instruction&quot;)
(declare-characteristic preserve-sdata?
  &quot;UNREGISTERED::James Clark//Characteristic::preserve-sdata?&quot;
  #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">
&lt;!doctype style-sheet PUBLIC &quot;-//James Clark//DTD DSSSL Style Sheet//EN&quot;&gt;

(declare-flow-object-class element
  &quot;UNREGISTERED::James Clark//Flow Object Class::element&quot;)

(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>&nbsp;</p>
</body>
</html>