<html>
<head>
<title>&lt;xsl:output&gt;</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id="Beschreibung">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
<tr>
<td valign="top" class="NAME">&lt;xsl:output&gt;</td>
<td valign="top" class="COMPATIBILITY">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
</tr>
<tr>
<td valign="top" colspan="2" class="description">
Diese Anweisung definiert die Eigenschaften des Ausgabedokuments.</td></tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Kategorie</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Element der obersten Ebene</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Obligatorische Attribute</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Keine</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Optionale Attribute</td>
</tr>
<tr>
<td colspan="2" class="description">
<dl>
<dt>
method
</dt>
<dd>
Besitzt typischerweise einen der folgenden drei Werte: <span class="LITERAL">
xml
</span> , <span class="LITERAL">
html
</span> oder <span class="LITERAL">
text
</span>. Dieser Wert bezeichnet die Art des zu erzeugenden Dokuments. Ein XSLT-Prozessor kann diese Liste um weitere Werte erg&auml;nzen, wie sie sich auf das entstehende Dokument auswirken, bestimmt der XSLT-Prozessor.
<P></p>
<dt>
version
</dt>
<dd>
Definiert den Wert des <span class="LITERAL">
version
</span>-Attributs der XML- oder HTML-Deklaration im Ausgabedokument. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
html
"
</span> oder <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
encoding
</dt>
<dd>
Definiert den Wert des <span class="LITERAL"> encoding </span>-Attributs der XML-Deklaration im Ausgabedokument.
<P></p>
<dt>
omit-xml-declaration
</dt>
<dd>
Dieses Attribut bestimmt, ob die XML-Deklaration im Ausgabedokument ausgelassen wird. Zul&auml;ssige Werte sind <span class="LITERAL">
yes
</span> und <span class="LITERAL">
no
</span>. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
standalone
</dt>
<dd>
Definiert den Wert des <span class="LITERAL"> standalone </span>-Attributs der XML-Deklaration im Ausgabedokument. Zul&auml;ssige Werte sind <span class="LITERAL"> yes </span> und <span class="LITERAL"> no </span>. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
doctype-public
</dt>
<dd>
Definiert den Wert des <span class="LITERAL"> PUBLIC </span>-Attributs der <span class="LITERAL"> DOCTYPE </span>-Deklaration im Ausgabedokument. Dieses Attribut definiert den &ouml;ffentlichen Bezeichner der DTD des Ausgabedokuments. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
html
"
</span> oder <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
doctype-system
</dt>
<dd>
Definiert den Wert des <span class="LITERAL"> SYSTEM </span>-Attributs der <span class="LITERAL"> DOCTYPE </span>-Deklaration im Ausgabedokument. Es definiert den Systembezeichner der DTD des Ausgabedokuments. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
html
"
</span> oder <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
cdata-section-elements
</dt>
<dd>
Eine Auflistung der Elemente, die als <span class="LITERAL">
CDATA
</span>-Abschnitte ins Ausgabedokument geschrieben werden sollen. Alle Einschr&auml;nkungen und Konventionen f&uuml;r die Behandlung von Zeichenreferenzen in <span class="LITERAL">
CDATA
</span>-Abschnitten werden vom XSLT-Prozessor geregelt. Wenn Sie mehrere Elemente auflisten m&uuml;ssen, trennen Sie die einzelnen Namen durch eines oder mehrere Leerraumzeichen. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
xml
"
</span> ist.
<P></p>
<dt>
indent
</dt>
<dd>
Dieses Attribut legt fest, ob die Tags im Ausgabedokument einger&uuml;ckt werden sollen. Zul&auml;ssige Werte sind <span class="LITERAL"> yes </span> und <span class="LITERAL"> no </span>. Dieses Attribut wird nur verwendet, wenn die Ausgabemethode <span class="LITERAL">
method=
"
xml
"
</span> oder <span class="LITERAL">
method=
"
html
"
</span> ist und der XSLT-Prozessor dies nicht ber&uuml;cksichtigen muss.
<P></p>
<dt>
media-type
</dt>
<dd>
Diese Anweisung definiert den MIME-Typ des Ausgabedokuments.
<P></p>
</dl>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Inhalt</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Keiner. <span class="LITERAL">&lt;xsl:output&gt;</span> ist ein leeres Element.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">&Uuml;bergeordnete Elemente</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>
<span class="LITERAL">&lt;xsl:output&gt;</span> ist ein Element der obersten Ebene und kann nur dem Element <span class="LITERAL">&lt;xsl:stylesheet&gt;</span> untergeordnet werden. </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Definition</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>XSLT-Abschnitt 16, Ausgabe </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Beispiel</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Um die drei in der XSLT-Spezifikation definierten Ausgabemethoden zu veranschaulichen, werden drei Stylesheets erstellt, von denen jedes eine der drei Methoden verwendet. Das nachfolgende XML-Dokument wird in allen drei Beispielen verwendet:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0"?&gt;
&lt;list&gt;
  &lt;title&gt;A few of my favorite albums&lt;/title&gt;
  &lt;listitem&gt;A Love Supreme&lt;/listitem&gt;
  &lt;listitem&gt;Beat Crazy&lt;/listitem&gt;
  &lt;listitem&gt;Here Come the Warm Jets&lt;/listitem&gt;
  &lt;listitem&gt;Kind of Blue&lt;/listitem&gt;
  &lt;listitem&gt;London Calling&lt;/listitem&gt;
  &lt;listitem&gt;Remain in Light&lt;/listitem&gt;
  &lt;listitem&gt;The Joshua Tree&lt;/listitem&gt;
  &lt;listitem&gt;The Indestructible Beat of Soweto&lt;/listitem&gt;
&lt;/list&gt;</pre></span>
<p>Es sollen nun die drei Stylesheets und die jeweils erzeugten Ergebnisse betrachtet werden. Zun&auml;chst das Stylesheet <span class="LITERAL">method="xml"</span>:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

  &lt;xsl:output 
    method="xml" 
    doctype-public="-//W3C/DTD XHTML 1.0//EN"
    doctype-system="file:///d:/xhtml.dtd"
    encoding="ISO-8859-1"
    indent="no"/&gt;

  &lt;xsl:template match="/"&gt;
    &lt;html&gt;
      &lt;head&gt;
        &lt;title&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/title&gt;
      &lt;/head&gt;
      &lt;body&gt;
        &lt;h1&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/h1&gt;
        &lt;p&gt;
          &lt;xsl:for-each select="/list/listitem"&gt;
            &lt;xsl:number format="1. "/&gt;
            &lt;xsl:value-of select="."/&gt;
            &lt;br/&gt;
          &lt;/xsl:for-each&gt;
        &lt;/p&gt;
      &lt;/body&gt;
    &lt;/html&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre></span>
<p>Dieses Stylesheet erzeugt das folgende Ergebnis:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C/DTD XHTML 1.0//EN" "file:///d:/xhtml.dtd"&gt; 
&lt;html&gt;&lt;head&gt;&lt;title&gt;A few of my favorite albums&lt;/title&gt; 
&lt;/head&gt;&lt;body&gt;&lt;h1&gt;A few of my favorite albums&lt;/h1&gt; 
&lt;p&gt;1. A Love Supreme&lt;br/&gt;2. Beat Crazy&lt;br/&gt;3. Here Come the  
Warm Jets&lt;br/&gt;4. Kind of Blue&lt;br/&gt;5. London Calling&lt;br/&gt;6. 
Remain in Light&lt;br/&gt;7. The Joshua Tree&lt;br/&gt;8. The Indestructible  
Beat of Soweto&lt;br/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</pre></span>
<p>(Dieses Listing enth&auml;lt Zeilenumbr&uuml;che, die in der urspr&uuml;nglichen Ausgabe nicht vorkamen. Dort wurde alles zwischen <span class="LITERAL">&lt;html&gt;</span> und <span class="LITERAL">&lt;/html&gt;</span> in einer einzigen Zeile angezeigt.)</p><p>Das Ausgabedokument besitzt die im Stylesheet angegebene Kodierung (<span class="LITERAL">encoding</span>) und die <span class="LITERAL">DOCTYPE</span>-Deklaration umfasst die angeforderten Bezeichner <span class="LITERAL">PUBLIC</span> und <span class="LITERAL">SYSTEM</span>. Selbst mit den eingef&uuml;gten Zeilenumbr&uuml;chen ist es offensichtlich, dass das Dokument nicht mit zus&auml;tzlichen Leer&auml;umen formatiert worden ist. Auch gibt es leere <span class="LITERAL">&lt;br/&gt;</span>-Elemente im Ausgabedokument. Diese werden unterschiedlich behandelt, wenn als Ausgabemethode <span class="LITERAL">method="html"</span> angegeben wird. Wo wir gerade dabei sind, hier das Stylesheet mit <span class="LITERAL">method="html"</span>:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

  &lt;xsl:output 
    method="html" 
    encoding="ISO-8859-1"
    doctype-public="-//W3C/DTD HTML 1.0 Transitional//EN"/&gt;

  &lt;xsl:template match="/"&gt;
    &lt;html&gt;
      &lt;head&gt;
        &lt;title&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/title&gt;
      &lt;/head&gt;
      &lt;body&gt;
        &lt;h1&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/h1&gt;
        &lt;p&gt;
          &lt;xsl:for-each select="/list/listitem"&gt;
            &lt;xsl:number format="1. "/&gt;
            &lt;xsl:value-of select="."/&gt;
            &lt;br/&gt;
          &lt;/xsl:for-each&gt;
        &lt;/p&gt;
      &lt;/body&gt;
    &lt;/html&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre></span>
<p>Und hier das von diesem Stylesheet erzeugte HTML-Dokument:</p>
<span class="PROGRAMLISTING"><pre>
&lt;!DOCTYPE HTML PUBLIC "-//W3C/DTD HTML 1.0 Transitional//EN"&gt;
&lt;html&gt;
&lt;head&gt;
&lt;META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"&gt;
&lt;title&gt;A few of my favorite albums&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1&gt;A few of my favorite albums&lt;/h1&gt;
&lt;p&gt;1. A Love Supreme&lt;br&gt;2. Beat Crazy&lt;br&gt;3. Here Come 
the Warm Jets&lt;br&gt;4. Kind of Blue&lt;br&gt;5. London Calling&lt;br&gt;6. 
Remain in Light&lt;br&gt;7. The Joshua Tree&lt;br&gt;8. The Indestructible 
Beat of Soweto&lt;br&gt;
&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></span>
<p>(Wie weiter oben wurden auch hier Zeilenumbr&uuml;che eingef&uuml;gt, um das Listing lesbar zu machen.)  Beachten Sie, dass der XSLT-Prozessor in den <span class="LITERAL">&lt;head&gt;</span> des HTML-Dokuments automatisch ein <span class="LITERAL">&lt;META&gt;</span>-Element eingef&uuml;gt hat. Die <span class="LITERAL">&lt;br&gt;</span>-Elemente, die im vorigen Stylesheet leer waren, sind nun alt hergebrachte <span class="LITERAL">&lt;br&gt;</span>-Tags. Selbst wenn diese Art der XSLT-Ausgabe kein Ergebnisdokument erzeugt, das gem&auml;&szlig; der XML- (bzw. XHTML-)Regeln g&uuml;ltig ist, funktioniert es doch mit den existierenden HTML-Browsern. </p>
<p>Das letzte Stylesheet verwendet die Ausgabemethode <span class="LITERAL">method="text"</span>:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version="1.0"?&gt;
&lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;

  &lt;xsl:output method="text"/&gt;

  &lt;xsl:template match="/"&gt;
    &lt;html&gt;
      &lt;head&gt;
        &lt;title&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/title&gt;
      &lt;/head&gt;
      &lt;body&gt;
        &lt;h1&gt;&lt;xsl:value-of select="/list/title"/&gt;&lt;/h1&gt;
        &lt;p&gt;
          &lt;xsl:for-each select="/list/listitem"&gt;
            &lt;xsl:number format="1. "/&gt;
            &lt;xsl:value-of select="."/&gt;
            &lt;br/&gt;
          &lt;/xsl:for-each&gt;
        &lt;/p&gt;
      &lt;/body&gt;
    &lt;/html&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre></span>
<p>Hier die Ergebnisse, wie sie von diesem Stylesheet erzeugt werden:</p>
<span class="PROGRAMLISTING"><pre>
A few of my favorite albumsA few of my favorite albums1. A Love Supreme2. Beat 
Crazy3. Here Come the Warm Jets4. Kind of Blue5. London Calling6. Remain in 
Light7. The Joshua Tree8. The Indestructible Beat of Soweto</pre></span>
<p>(Wie zuvor wurden auch hier Zeilenumbr&uuml;che eingef&uuml;gt, damit das Dokument auf die Seite passt.)  Diese Ergebnisse sind im Grunde genommen wertlos. Weshalb wurden die so sorgf&auml;ltig kodierten HTML-Elemente im Text nicht ausgegeben?  Der Grund daf&uuml;r ist, dass die Ausgabemethode <span class="LITERAL">text</span> nur Textknoten in den Ergebnisbaum einf&uuml;gt. Zwar wurde angefordert, dass verschiedene HTML-Elemente zu erzeugen sind, doch wird dies mit <span class="LITERAL">method="text"</span> ignoriert.</p>
</td>
</tr>
</table>
</div>
</body>
</html>
