home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 May / Gamestar_73_2005-05_dvd.iso / Programy / amaya / amaya-Win98-8.7.3.exe / _SETUP.1 / Transform.html.de < prev    next >
Encoding:
Extensible Markup Language  |  2002-09-11  |  9.4 KB  |  231 lines

  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3.  
  4.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head>
  7.   <meta name="generator" content="amaya 6.1, see http://www.w3.org/Amaya/" />
  8.   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  9.   <title>Die Datei HTML.trans benutzen</title>
  10.   <style type="text/css">
  11.   </style>
  12.   <link href="../style.css" rel="stylesheet" type="text/css" />
  13. </head>
  14.  
  15. <body xml:lang="de" lang="de">
  16.  
  17. <table border="0" cellspacing="5" cellpadding="5">
  18.   <tbody>
  19.     <tr>
  20.       <td><img alt="W3C" src="../../images/w3c_home" /> <img alt="Amaya"
  21.         src="../../images/amaya.gif" />
  22.       </td>
  23.       <td><a href="about_merging_elements.html.de" accesskey="p"><img
  24.         alt="vorherige Seite" src="../../images/left.gif" /></a> <a
  25.         href="../Changing.html.de" accesskey="t"><img alt="erste Seite"
  26.         src="../../images/up.gif" /></a></td>
  27.     </tr>
  28.   </tbody>
  29. </table>
  30.  
  31. <div id="page_body">
  32. <h1>Die Datei HTML.trans benutzen</h1>
  33.  
  34. <p>Dieses Dokument ist eine Einfⁿhrung zu dem von <strong>Amaya</strong>
  35. bereitgestellten Mechanismus der strukturierten Transformation. Es beschreibt
  36. die Syntax der Transformationssprache und wie Transformationen im Editor
  37. durchgefⁿhrt werden.</p>
  38.  
  39. <p>Die Datei <code>HTML.trans</code> im Verzeichnis <code>amaya</code>
  40. enthΣlt die Beschreibung der Transformationen. Diese Datei wird wΣhrend einer
  41. Sitzung mit <strong>Amaya</strong> dynamisch geparst wenn die
  42. Transformationsprozedur vom Editor aufgerufen wird, sodass neue
  43. Transformationen wΣhrend einer Editiersitzung hinzugefⁿgt werden k÷nnen. Die
  44. Datei kann, wΣhrend man mit Amaya arbeitet, editiert werden.</p>
  45.  
  46. <p class="Note"><strong>Warnung</strong>: Da die Beschreibung der
  47. Transformationen HTML-Tags enthalten kann, sollte diese Datei
  48. <strong>nicht</strong> mit Amaya editiert werden. Man muss irgend einen
  49. anderen Editor benutzen.</p>
  50.  
  51. <h2>Syntax der Transformationssprache</h2>
  52.  
  53. <p>Kommentare beginnen mit <code><strong>!</strong></code> und gehen bis zum
  54. Zeilenende.</p>
  55.  
  56. <p>Die Datei enthΣlt eine Liste von Transformationsbeschreibungen. Jede
  57. Transformation wird durch drei Teile beschrieben:</p>
  58. <ul>
  59.   <li>Ein <em>Name</em>, der mit einem Doppelpunkt abgeschlossen wird.</li>
  60.   <li>Ein <em>Muster</em>, das mit einem Semikolon abgeschlossen wird.</li>
  61.   <li>Eine Liste von <em>Regeln</em>, die in geschweifte Klammern
  62.     eingeschlossen wird. Jede Regel wird mit einem Semikolon terminiert.</li>
  63. </ul>
  64.  
  65. <p>Der Name erscheint im Menⁿ <strong>Transformation</strong> und
  66. identifiziert die Transformation.</p>
  67.  
  68. <h3>Das Muster</h3>
  69.  
  70. <p>Das Muster beschreibt die spezifische Organisation der Elemente, welche
  71. transformiert werden sollen. Es agiert als Filter ⁿber der DTD von HTML. Der
  72. Zweck des Musters ist eine spezielle Kombination von Elementen zu
  73. identifizieren auf die die Transformation angewendet werden kann. Mit einem
  74. Muster ist es m÷glich Bedingungen fⁿr die Sequenz von Tags, den Inhalt eines
  75. Tags oder die Existenz eines Wertes oder Attributs anzugeben.</p>
  76.  
  77. <p>Formal enthΣlt ein Muster einen HTML-Tag (m÷glicherweise mit Attributen)
  78. und Operatoren:</p>
  79.  
  80. <p><strong><code>|</code></strong> Auswahl (oder)</p>
  81.  
  82. <p><strong><code>,</code></strong> Geschwister</p>
  83.  
  84. <p><strong><code>+</code></strong> Sequenz</p>
  85.  
  86. <p><strong><code>?</code></strong> Option</p>
  87.  
  88. <p><strong><code>( )</code></strong> Gruppierung von Knoten</p>
  89.  
  90. <p>Die Klammern <code><strong>{</strong></code>
  91. <code><strong>}</strong></code> definieren den Inhalt eines Knotens.</p>
  92.  
  93. <p>Das Symbol <strong><code>*</code></strong> ist ein Token, welches auf
  94. jedes Element zutrifft.</p>
  95.  
  96. <p>Es ist m÷glich ein Tag umzunennen, indem man ihm einen Namen, gefolgt von
  97. einem Doppelpunkt (<strong><code>:</code></strong>). voranstellt</p>
  98.  
  99. <p>Das Tag kann Attribute haben. Ist kein Wert angegeben, dann trifft ein
  100. Element zu, wenn es das entsprechende Attribut hat. Ist ein Wert fⁿr ein
  101. Attribut angegeben, dann trifft ein Element zu, wenn das entsprechende
  102. Attribut vorhanden ist und den entsprechenden Wert hat.</p>
  103.  
  104. <p><a href="#L235">Beispiele</a> von Mustern findet man am Ende des
  105. Dokuments</p>
  106.  
  107. <h3>Die Regeln</h3>
  108.  
  109. <p>Eine Regel besagt, wie die, durch ein Muster identifizierten Elemente
  110. transformiert werden. Eine Regel besteht aus zwei Teilen, die durch das
  111. Symbol <strong><code>></code></strong> getrennt sind:</p>
  112. <ul>
  113.   <li>Ein durch ein Muster oder Namen definiertes Tag.</li>
  114.   <li>Eine Liste, welche die Tags enthΣlt, die generiert werden sollen und
  115.     eine Stelle wo sie eingefⁿgt werden sollen.</li>
  116. </ul>
  117.  
  118. <p>Die Liste selbst besteht aus zwei, durch einen Doppelpunkt
  119. (<strong><code>:</code></strong>) getrennten Teilen:</p>
  120. <ul>
  121.   <li>Der Pfad (die Stelle, wo die neuen Tags eingefⁿgt werden sollen).</li>
  122.   <li>Die Liste der Tags, welche generiert werden sollen.</li>
  123. </ul>
  124.  
  125. <p>Der Pfad wird im Σu▀ersten linken Ast des Dokumentenbaums gesucht und zwar
  126. vom Elternelement des Elements welches dem obersten Symbol im Suchmuster
  127. entsprach.</p>
  128.  
  129. <p>In der Tagliste wird der Punkt (<code><strong>.</strong></code>) benutzt
  130. um in der Baumstruktur hinabzuwandern</p>
  131.  
  132. <p>Wenn das Symbol Stern (<code><strong>*</strong></code>) am Ende der zu
  133. generierenden Tagliste steht, so wird das ursprⁿngliche Tag nicht verΣndert,
  134. kann aber an eine andere Stelle verschoben werden.</p>
  135.  
  136. <p>Taucht ein Tag oder ein Name im linken Teil der Regel mehrmals in einem
  137. Muster auf, dann transformiert die Regel alle die Elemente, welche im Muster
  138. vorkommen.</p>
  139.  
  140. <h2>Der Transformationsprozess</h2>
  141.  
  142. <p>WΣhlt der Benutzer den Befehl <strong>Transformiern</strong> aus dem Menⁿ
  143. <strong>Bearbeiten</strong>, dann parst Amaya die Datei
  144. <code>HTML.trans</code>. Danach werden die markierten Elemente mit dem Muster
  145. jeder Transformation gesucht. Die Namen der gefundenen Transformationen
  146. werden dem Benutzer in einem Popup-Menⁿ angezeigt.</p>
  147.  
  148. <p>Treffen mehrere Transformationen mit gleichem Namen auf die markierten
  149. Elemente zu, dann wird die Transformation auf der obersten Ebene dem Benutzer
  150. angezeigt. Treffen mehrere Transformationen auf der gleichen Ebene zu, dann
  151. wird die erste in der Datei <code>HTML.trans</code> gefundene genommen. Daher
  152. sollte man spezifische Muster vor den allgemeinen anlegen.</p>
  153.  
  154. <p>Nachdem eine Transformation vom Benutzer ausgewΣhlt wurde, wird die
  155. Zielstruktur gemΣ▀ den Regeln erstellt, indem die markierten Elemente
  156. transformiert werden.</p>
  157.  
  158. <p>Am Ende wird der Inhalt der zu transformierenden Elemente (Text, Bilder,
  159. aber auch strukturierte Elemente) in die transformierten Elemente
  160. verschoben.</p>
  161.  
  162. <p>Der Transformationsprozess fⁿr HTML-Elemente ist vollstΣndig in <a
  163. href="http://opera.inrialpes.fr/opera/papers9696.html"><em>Interactively
  164. Restructuring HTML Documents</em></a> beschrieben, ein Dokument, welches auf
  165. der <a href="http://www5conf.inria.fr/">fⁿnften internationalen
  166. WWW-Konferenz</a> in Paris im Mai 96 von CΘcile Roisin und StΘphane Bonhomme
  167. vorgestellt wurde.</p>
  168.  
  169. <h2><a name="L235" id="L235">Beispiele:</a></h2>
  170. <ul>
  171.   <li>Das erste Beispiel vereinigt mehrere unsortierte Listen (ul).
  172.     <p></p>
  173.     <pre>    Merge Lists: (ul{li+})+;
  174.     {
  175.     li > ul:li;
  176.     }</pre>
  177.     <p>Das Muster trifft auf eine Sequenz von unsortierten Listen zu, welche
  178.     eine Sequenz von Listenelementen (li+) enthalten.</p>
  179.     <p>Die Regel besagt, dass jedesmal, wenn ein Element beim Durchgang ⁿber
  180.     die passenden Elemente angetroffen wird, ein neues li-Tag innerhalb einer
  181.     ul erzeugt werden soll. Wird die Regel das erste Mal angewendet, dann ist
  182.     die resultierende Struktur noch leer. Es gibt noch kein ul-Element, in
  183.     das ein li-Element gelegt werden kann. Daher wird das ul-Element zuerst
  184.     erzeugt damit die Regel angewendet werden kann.</p>
  185.   </li>
  186.   <li>Das zweite Beispiel transformiert eine Definitionsliste in eine
  187.     Tabelle.
  188.     <p></p>
  189.     <pre>    Table: dl{(dt|dd)+};
  190.     {
  191.     dt > <table border=1>.tbody:tr.td;
  192.     dd > <table border=1>.tbody.tr:td;
  193.     }</pre>
  194.     <p>Das Muster passt auf jedes Definitionslistenelement (dl).</p>
  195.     <p>Die Regel beschreibt, wie die Tabelle inkrementell erstellt werden
  196.     soll, wenn die Struktur der markierten Definitionsliste durchlaufen
  197.     wird:</p>
  198.     <ul>
  199.       <li>jedes dt involviert die Erzeugung einer neuen Tabellenzeile in
  200.         einem Tabellenk÷rper.</li>
  201.       <li>jedes dd involviert die Erzeugung einer neuen Tabellenzelle in der
  202.         vorher erzeugten Tabellenzeile</li>
  203.     </ul>
  204.   </li>
  205.   <li>Das dritte Beispiel entfernt ein Tabellenelement, lΣsst dessen Inhalt
  206.     aber unverΣndert.
  207.     <p></p>
  208.     <pre>    Remove Table:
  209.     table{?caption,?(body:*{(tr{(td{(?cell_content:*)+}|
  210.                              th{(?cell_content:*)+}
  211.                            )})+})+};
  212.     {
  213.     caption>h3;
  214.     cell_content>:*;
  215.     }</pre>
  216.     <p>Das Muster passt auf eine beliebige Tabelle und identifiziert den
  217.     Inhalt einer jeglichen Tabellenzelle (cell_content).</p>
  218.     <p>Die zweite Regel besagt, dass der Inhalt jeder Zelle an die
  219.     ursprⁿngliche Stelle im Dokument verschoben werden soll.</p>
  220.   </li>
  221.   <li>Die Datei <code>amaya/HTML.trans</code> enthΣlt weitere Beispiele.</li>
  222. </ul>
  223. <hr />
  224. <address>
  225.   <a href="mailto:Stephane.Bonhomme@inrialpes.fr">StΘphane Bonhomme</a> <br />
  226.   Date: 2002/03/28 15:00:17
  227. </address>
  228. </div>
  229. </body>
  230. </html>
  231.