File: index.xml

package info (click to toggle)
libxalan2-java 2.7.1-5
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 19,468 kB
  • ctags: 26,006
  • sloc: java: 175,784; xml: 28,073; sh: 164; jsp: 43; makefile: 43; sql: 6
file content (167 lines) | stat: -rw-r--r-- 7,592 bytes parent folder | download | duplicates (5)
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
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "../../style/dtd/document.dtd">
<!--
 * Copyright 2001-2004 The Apache Software Foundation.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->
<!-- $Id: index.xml 478654 2006-11-23 19:52:02Z minchau $ -->

<s1 title="XSLTC Documentation">

  <s2 title="User Documentation">
    <p>The following user documentation is currently available:</p>
    <ul>
      <li>Command-line <jump href="README.xsltc">compiler</jump> and
      <jump href="README.xslt">runtime</jump> man pages.</li>
      <li><link idref="xsltc_native_api">XSLTC Native API reference</link></li>
      <li><link idref="xsltc_trax_api">XSLTC TrAX API reference</link></li>
      <li><link idref="xsltc_performance">XSLTC Performance Hints</link></li>
    </ul>
  </s2>

  <s2 title="Design Documents">
    <p>The following design documents are currently available:</p>
    <ul>
      <li><link anchor="overall">XSLTC overall design</link></li>
      <li><link anchor="compiler">XSLTC compiler design</link></li>
      <li><link anchor="runtime">XSLTC runtime library design</link></li>
      <li><link anchor="runtime">XSLTC internal DOM design</link></li>
      <li><link anchor="trax">XSLTC TrAX implementation design</link></li>
    </ul>


    <!--========================= OVERALL DESIGN ==========================-->
    <anchor name="overall"/>
    <s3 title="XSLTC overall design">

    <p>The figure below describes the overall design of XSLTC's compiler:</p>
    <p><img src="overall_design.gif" alt="overall_design.gif"/></p>
    <p><ref>Figure 1: Architectural overview of XSLTC</ref></p>

    <p>A client application can use XSLTC either through its
    <link idref="xsltc_native_api">native API</link> or through or
    implementation of the <link idref="xsltc_trax_api">TrAX API</link>. The
    <link anchor="compiler">compiler</link> generates one or more Java classes
    (we have chosen to call them 'translets').
    The <link anchor="runtime">runtime library</link> contains classes that
    can load these translets and use them to transform XML documents to some
    markup language or plain text. There is also a detailed document describing
    <link idref="xsltc_namespace">namespace handling</link> in all parts of
    XSLTC (compiler, internal DOM, and output handler).</p>

    </s3>

    <!--========================= COMPILER DESIGN =========================-->
    <anchor name="compiler"/>
    <s3 title="XSLTC compiler design">

    <p>The figure below describes the overall design of XSLTC's compiler:</p>
    <p><img src="compiler_design.gif" alt="compiler_design.gif"/></p>
    <p><ref>Figure 2: Compiler architecture overview</ref></p>

    <p>There is also a <link idref="xsltc_compiler">high-level design</link>
    document for XSLTC's compiler. Apart from that you can also find separate
    design documents for some XSL elements and XPath expressions, patterns
    and functions:</p>

    <s4 title="XSL elements">
      <ul>
        <li><link idref="xsl_sort_design">&lt;xsl:sort&gt;</link></li>
        <li><link idref="xsl_key_design">&lt;xsl:key&gt;</link></li>
        <li><link idref="xsl_whitespace_design">&lt;xsl:preserve-space&gt;</link></li>
        <li><link idref="xsl_whitespace_design">&lt;xsl:strip-space&gt;</link></li>
        <li><link idref="xsl_comment_design">&lt;xsl:comment&gt;</link></li>
        <li><link idref="xsl_comment_design">&lt;xsl:message&gt;</link></li>
        <li><link idref="xsl_if_design">&lt;xsl:if&gt;</link></li>
        <li><link idref="xsl_choose_design">&lt;xsl:choose&gt;</link></li>
        <li><link idref="xsl_variable_design">&lt;xsl:variable&gt;</link></li>
        <li><link idref="xsl_variable_design">&lt;xsl:param&gt;</link></li>
        <li><link idref="xsl_include_design">&lt;xsl:include&gt;</link></li>
        <li><link idref="xsl_include_design">&lt;xsl:import&gt;</link></li>
      </ul>
    </s4>
    <s4 title="XPath functions">
      <ul>
        <li><link idref="xsl_key_design">key()</link></li>
        <li><link idref="xsl_lang_design">lang()</link></li>
        <li><link idref="xsl_unparsed_design">unparsed-entity-uri()</link></li>
      </ul>
    </s4>
    <s4 title="XPath expressons">
      <ul>
        <li><link idref="xsltc_predicates">Predicates</link></li>
      </ul>
    </s4>

    <s4 title="XPath patterns">
      <ul>
        <li><jump href="xsltc_predicates.html#step-pattern">StepPattern</jump></li>
        <li><jump href="xsl_key_design.html#patterns">IdPattern</jump></li>
        <li><jump href="xsl_key_design.html#patterns">KeyPattern</jump></li>
      </ul>
    </s4>
    </s3>

    <!--========================= RUNTIME DESIGN ==========================-->
    <anchor name="runtime"/>
    <s3 title="XSLTC runtime library design">

    <p>The runtime portion of XSLTC has four main components; the internal DOM
    implementation (not W3C), the translet class(es), the runtime
    library and the output processor:</p>

    <p><img src="runtime_design.gif" alt="runtime_design.gif"/></p>
    <p><ref>Figure 3: Runtime library architecture overview</ref></p>

    <p>The <link idref="xsltc_runtime">runtime library design</link> document
    describes the structure of the compiled translet as well as the translet
    runtime library.</p>

    <p>The <link idref="xsltc_dom">Internal DOM design</link> document
    describes the components and structure of the internal DOM, support for
    DOM2 navigation, the DOM adapter, DOM multiplexer, and DOM builder.</p>

    <p>The <link idref="xsltc_iterators">iterator design</link> document
    describes the general design of the internal DOM iterators and describes
    some of the more complicated iterators in detail.</p>

    </s3>

    <!--========================== TRAX DESIGN ===========================-->
    <anchor name="trax"/>
    <s3 title="XSLTC TrAX Implementation">

    <p>An implementation of the JAXP/ TrAX interface was added on to XSLTC
    at a late stage. Special care was taken to preserve the small footprint
    and high performance of XSLTC. The following design was used to wrap
    XSLTC behind a lightweight (but complete) TrAX implementation:</p>

    <p><img src="trax_translet_wrapping.gif" alt="trax_translet_wrapping.gif"/></p>
    <p><ref>Figure 4: XSLTC TrAX interface implementation</ref></p>

    <p>The <link idref="xsltc_trax">TrAX design</link> document contains
    details of XSLTC's TrAX implementation.</p>

    <p>XSLTC also has a 'smart' TrAX <code>TransformerFactory</code> class
    that will alternate between using XSLTC and Xalan for transformations.
    This factory class will make its choices based on usage patterns. This will
    be described in a separate design document.</p>

    </s3>

    </s2>

  <p><ref>Design documents by <jump href="mailto:morten@xml.apache.org">Morten J&oslash;rgensen</jump> - updated 13.12.2001</ref></p>

</s1>