<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://oomodels.org/index.php?action=history&amp;feed=atom&amp;title=Artefact%3ATemplate%2Forg%2Foogenerator%2Fexamples%2Ftutorial%2FExample0100_Encoding</id>
	<title>Artefact:Template/org/oogenerator/examples/tutorial/Example0100 Encoding - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://oomodels.org/index.php?action=history&amp;feed=atom&amp;title=Artefact%3ATemplate%2Forg%2Foogenerator%2Fexamples%2Ftutorial%2FExample0100_Encoding"/>
	<link rel="alternate" type="text/html" href="https://oomodels.org/index.php?title=Artefact:Template/org/oogenerator/examples/tutorial/Example0100_Encoding&amp;action=history"/>
	<updated>2026-04-29T09:23:36Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://oomodels.org/index.php?title=Artefact:Template/org/oogenerator/examples/tutorial/Example0100_Encoding&amp;diff=1572&amp;oldid=prev</id>
		<title>AndreasLeue: New page: {{Metabox | Meta_Type     = Type:org/oogenerator/Template/2.0 | Meta_Domain   = Domain:it/development/formatting | Meta_Category = Type:org/oomodels/wiki/Template | Meta_Download = true | ...</title>
		<link rel="alternate" type="text/html" href="https://oomodels.org/index.php?title=Artefact:Template/org/oogenerator/examples/tutorial/Example0100_Encoding&amp;diff=1572&amp;oldid=prev"/>
		<updated>2008-07-25T14:55:50Z</updated>

		<summary type="html">&lt;p&gt;New page: {{Metabox | Meta_Type     = Type:org/oogenerator/Template/2.0 | Meta_Domain   = Domain:it/development/formatting | Meta_Category = Type:org/oomodels/wiki/Template | Meta_Download = true | ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Metabox&lt;br /&gt;
| Meta_Type     = Type:org/oogenerator/Template/2.0&lt;br /&gt;
| Meta_Domain   = Domain:it/development/formatting&lt;br /&gt;
| Meta_Category = Type:org/oomodels/wiki/Template&lt;br /&gt;
| Meta_Download = true&lt;br /&gt;
| Meta_Maturity = final&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{AutoUpload}}&lt;br /&gt;
&lt;br /&gt;
==Code==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;code&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogintro&amp;quot;&amp;gt;G-2.0-plain_java-1.0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    Templates produce output. Such output might be just plain&lt;br /&gt;
    ASCII, plain Unicode or might be encoded somehow, say HTML.&lt;br /&gt;
 &lt;br /&gt;
    Furthermore, templates process input, which may or may not&lt;br /&gt;
    be written in the same encoding.&lt;br /&gt;
 &lt;br /&gt;
    And finally, the normal template text might have a third&lt;br /&gt;
    encoding.&lt;br /&gt;
 &lt;br /&gt;
    Let's assume you want to create a Java properties file&lt;br /&gt;
    based on XML input. Then&lt;br /&gt;
 &lt;br /&gt;
    - in the input we have '&amp;amp;lt;', '&amp;amp;gt;' and '&amp;amp;amp;'.&lt;br /&gt;
    - in our template text we just want to write normal Unicode.&lt;br /&gt;
    - in the properties file everything non-ASCII (e.g. german&lt;br /&gt;
      umlauts) must be escaped '\uXXXX'&lt;br /&gt;
 &lt;br /&gt;
    In templates, such a situation is rather the rule then&lt;br /&gt;
    an exception.&lt;br /&gt;
 &lt;br /&gt;
    Instead of writing conversion calls each and everyplace,&lt;br /&gt;
    we just can use the recoding operator '&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘'&amp;lt;/span&amp;gt;:&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcode&amp;quot;&amp;gt;«  String xml_input = &amp;quot; immer und überall gilt: 17 &amp;amp;lt; 23 &amp;quot;; »&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂xml_input&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘XML/JAVAPROP&amp;lt;/span&amp;gt;▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    You get the output&lt;br /&gt;
 &lt;br /&gt;
    &amp;quot; immer und \u00FCberall gilt: 17 &amp;lt; 23 &amp;quot;&lt;br /&gt;
 &lt;br /&gt;
    The '&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt;...' sequence is called a 'recoding'.&lt;br /&gt;
    It consists of a sequence of encoding names. The above&lt;br /&gt;
    example reads 'convert XML to JAVAPROP'.&lt;br /&gt;
 &lt;br /&gt;
    The encoding names are defined in an enumeration class&lt;br /&gt;
    named 'Encoding'. You can use this class also from normal&lt;br /&gt;
    Java code.&lt;br /&gt;
 &lt;br /&gt;
    If we have many such expressions in our template, we can&lt;br /&gt;
    define a default recoding:&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;SPAN CLASS=&amp;quot;OOGTEMPLATECODE&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘XML/JAVAPROP&amp;lt;/span&amp;gt; ⊐&amp;lt;/SPAN&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂xml_input▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    This yields the same result as above.&lt;br /&gt;
 &lt;br /&gt;
    Default encodings can be nested (they apply to included&lt;br /&gt;
    and subtemplates, too, but we do not know yet what these are).&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;SPAN CLASS=&amp;quot;OOGTEMPLATECODE&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘DOCBOOK/JAVAPROP&amp;lt;/span&amp;gt; ⊐&amp;lt;/SPAN&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogindentation&amp;quot;&amp;gt;   ⋮&amp;lt;/span&amp;gt;&amp;lt;SPAN CLASS=&amp;quot;OOGTEMPLATECODE&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘XML/JAVAPROP&amp;lt;/span&amp;gt; ⊐&amp;lt;/SPAN&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
        &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂xml_input▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogindentation&amp;quot;&amp;gt;   ⋮&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    This again yields the same result as above.&lt;br /&gt;
 &lt;br /&gt;
    Encodings need not be complete, they will be combined.&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;SPAN CLASS=&amp;quot;OOGTEMPLATECODE&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘XML/&amp;lt;/span&amp;gt; ⊐&amp;lt;/SPAN&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂xml_input&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘/JAVAPROP&amp;lt;/span&amp;gt;▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    This again yields the same result as above.&lt;br /&gt;
 &lt;br /&gt;
    Note, that a default encoding applies to embedded Java expressions&lt;br /&gt;
    as well as normal template text. What if they are different, as&lt;br /&gt;
    within our example?&lt;br /&gt;
 &lt;br /&gt;
    Then you can apply a different default encoding to these&lt;br /&gt;
    categories.&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt;[x]XML/JAVAPROP ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ &amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt;[t]UTF8/JAVAPROP ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂xml_input▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
    This '&amp;amp;lt;' is not translated, since we're here in normal&lt;br /&gt;
    template text, not in an expression.&lt;br /&gt;
 &lt;br /&gt;
    &amp;lt;span class=&amp;quot;oogexpression&amp;quot;&amp;gt;◂&amp;quot;But this '&amp;amp;lt;' is translated, since we're an expression&amp;quot;▸&amp;lt;/span&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogtemplatecode&amp;quot;&amp;gt;⊏ /&amp;lt;span class=&amp;quot;oogencoding&amp;quot;&amp;gt;⌘&amp;lt;/span&amp;gt; ⊐&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span class=&amp;quot;oogcomment&amp;quot;&amp;gt;⊰&lt;br /&gt;
    As you might have guessed, 'x' stands for 'expression' and&lt;br /&gt;
    't' for 'template text'.&lt;br /&gt;
 ⊱&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;oogcontinuation&amp;quot;&amp;gt;…&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>AndreasLeue</name></author>
	</entry>
</feed>