[543170] Adding redirects in stale articles.
diff --git a/uml2/docs/articles/Getting_Started_with_UML2/article.html b/uml2/docs/articles/Getting_Started_with_UML2/article.html
index 25c5bd2..26cd33e 100644
--- a/uml2/docs/articles/Getting_Started_with_UML2/article.html
+++ b/uml2/docs/articles/Getting_Started_with_UML2/article.html
@@ -247,7 +247,7 @@
 <div class=Section1>
 
 <p class=MsoNormal align=right style='text-align:right'><span style='font-size:
-10.0pt'>Copyright © 2004, 2008 International Business Machines Corp.</span><span
+10.0pt'>Copyright � 2004, 2008 International Business Machines Corp.</span><span
 style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></p>
 
 <div align=right>
@@ -264,6 +264,8 @@
 
 </div>
 
+<h3><span style='color:red'><b>NOTE that this article is obsolete; please see <a href="http://wiki.eclipse.org/MDT/UML2/Getting_Started_with_UML2">here</a> instead.</b></span></h3>
+
 <h1><img width=120 height=86 id="_x0000_i1025" src="../../../../images/Idea.jpg"
 align=CENTER></h1>
 
@@ -286,8 +288,8 @@
 
 <p><b>By <span class=SpellE>Kenn</span> Hussey, IBM</b><br>
 <st1:date Year="2006" Day="18" Month="7">July 18, 2006</st1:date> <span
-style='mso-spacerun:yes'>   </span><span
-style='mso-spacerun:yes'> </span>(Updated: <st1:date Year="2008" Day="11"
+style='mso-spacerun:yes'>���</span><span
+style='mso-spacerun:yes'>�</span>(Updated: <st1:date Year="2008" Day="11"
 Month="7">July 11, 2008</st1:date> for Eclipse 3.4; James <span class=SpellE>Bruck</span>)</p>
 
 </blockquote>
@@ -308,29 +310,29 @@
 href="http://www.eclipse.org/modeling/emf/downloads/?project=emf">EMF 2.4</a></span>,
 and <span class=MsoHyperlink><a
 href="http://www.eclipse.org/modeling/mdt/downloads/?project=uml2">UML2 2.2</a></span>
-installed.<span style='mso-spacerun:yes'>  </span></p>
+installed.<span style='mso-spacerun:yes'>� </span></p>
 
 <p>You can either download the zips individually and expand them out or follow the
-steps below: <span style='mso-spacerun:yes'> </span></p>
+steps below: <span style='mso-spacerun:yes'>�</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Download and run Eclipse 3.4</span></p>
+style='mso-spacerun:yes'>�</span>Download and run Eclipse 3.4</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select the <b>Help</b> &gt; <b>Software
-Updates … </b>menu</span></p>
+style='mso-spacerun:yes'>�</span>Select the <b>Help</b> &gt; <b>Software
+Updates � </b>menu</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select the <b>Available Software</b> tab and expand
+style='mso-spacerun:yes'>�</span>Select the <b>Available Software</b> tab and expand
 the <b>Ganymede\Model and Model Development</b> tree item.</span></p>
 
 <p style='margin-left:.25in'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
@@ -363,15 +365,15 @@
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select <b>UML2 End-User Features</b> and <b>UML2
-Extender SDK</b>.<span style='mso-spacerun:yes'>  </span>The version should
+style='mso-spacerun:yes'>�</span>Select <b>UML2 End-User Features</b> and <b>UML2
+Extender SDK</b>.<span style='mso-spacerun:yes'>� </span>The version should
 indicate 2.2.0 (or later).</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Click <b>Install<span class=GramE>… <span
+style='mso-spacerun:yes'>�</span>Click <b>Install<span class=GramE>� <span
 style='font-weight:normal'>.</span></span></b></span></p>
 
 <p>At this stage, UML2 2.2 and all dependencies should be installed.</p>
@@ -381,9 +383,9 @@
 <h2>Introduction</h2>
 
 <p>This article will walk you through the basics of creating models using UML2.
-Using a simple model (the ExtendedPO2 model, shamelessly “borrowed” from the EMF
-“bible” [1]) as an example, we’ll look at what’s involved in creating some of
-the more common elements that make up a model. For each type of element, we’ll
+Using a simple model (the ExtendedPO2 model, shamelessly �borrowed� from the EMF
+�bible� [1]) as an example, we�ll look at what�s involved in creating some of
+the more common elements that make up a model. For each type of element, we�ll
 first explain the creation process using the sample UML editor and then explore
 how to accomplish the same thing using Java code. The ExtendedPO2 model is
 shown below.</p>
@@ -396,13 +398,13 @@
 
 <h2>Getting Started</h2>
 
-<p>Before getting started, you’ll need to create a simple project in your
-workspace. This project will serve as the container for the model that we’ll
+<p>Before getting started, you�ll need to create a simple project in your
+workspace. This project will serve as the container for the model that we�ll
 create using the UML editor. To create a simple project for this article,
 follow these steps:</p>
 
 <p style='margin-left:27.5pt'>1) Select the <b>Window &gt; Open Perspective
-&gt; <span class=GramE>Other</span>…</b> menu item.</p>
+&gt; <span class=GramE>Other</span>�</b> menu item.</p>
 
 <p style='margin-left:27.5pt'>2) Select the <b>Resource</b> perspective and
 press the <b>OK</b> button.</p>
@@ -413,8 +415,8 @@
 <p style='margin-left:27.5pt'>4) Select the <b>Project</b> wizard from the <b>General</b>
 category and press the <b>Next &gt;</b> button.</p>
 
-<p style='margin-left:27.5pt'>5) Enter a project name (i.e. “Getting Started
-with UML2”) and press the <b>Finish</b> button.</p>
+<p style='margin-left:27.5pt'>5) Enter a project name (i.e. �Getting Started
+with UML2�) and press the <b>Finish</b> button.</p>
 
 <p>At this point your workspace should look something like this:</p>
 
@@ -425,47 +427,47 @@
 src="article_files/image024.jpg" v:shapes="_x0000_i1088"><![endif]></p>
 
 <p>OK, that should be enough to get us going with the UML editor. Now, to
-follow along with the programmatic approach to creating models, we’ll assume
-that you’ve created a class (named, say, “GettingStartedWithUML2”) in which you
-can write some code to construct our sample model. The code snippets we’ll show
-assume you’ve defined the following utility methods to give the user
-information on the program’s status:</p>
+follow along with the programmatic approach to creating models, we�ll assume
+that you�ve created a class (named, say, �GettingStartedWithUML2�) in which you
+can write some code to construct our sample model. The code snippets we�ll show
+assume you�ve defined the following utility methods to give the user
+information on the program�s status:</p>
 
 <pre style='margin-left:9.0pt'><img border=0 width=24 height=14
 id="_x0000_i1028" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-tab-count:1'>  </span><span class=GramE>public</span> static <span
+style='mso-tab-count:1'>� </span><span class=GramE>public</span> static <span
 class=SpellE>boolean</span> DEBUG = true;</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void out(String output) {</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>if</span> (DEBUG) {</pre><pre
+style='mso-tab-count:2'>����������� </span><span class=GramE>if</span> (DEBUG) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1029"
 src="../../../../images/tag_2.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span><span class=SpellE><span class=GramE>System.out.println</span></span><span
+3'>���������������� </span><span class=SpellE><span class=GramE>System.out.println</span></span><span
 class=GramE>(</span>output);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span>}</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+style='mso-tab-count:2'>����������� </span>}</pre><pre style='margin-left:9.0pt'><span
+style='mso-tab-count:1'>���� </span>}</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void err(String error) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1030"
 src="../../../../images/tag_3.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE><span class=GramE>System.err.println</span></span><span
+2'>�������� </span><span class=SpellE><span class=GramE>System.err.println</span></span><span
 class=GramE>(</span>error);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>A
 static debug flag <img border=0 width=24 height=14 id="_x0000_i1031"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>can be used to enable or disable verbose
-information printed to the system’s output <span class=GramE>stream </span><img
+style='mso-spacerun:yes'>�</span>can be used to enable or disable verbose
+information printed to the system�s output <span class=GramE>stream </span><img
 border=0 width=24 height=14 id="_x0000_i1032" src="../../../../images/tag_2.gif"
-align=CENTER>. Errors will always be printed to the system’s error <span
+align=CENTER>. Errors will always be printed to the system�s error <span
 class=GramE>stream </span><img border=0 width=24 height=14 id="_x0000_i1033"
 src="../../../../images/tag_3.gif" align=CENTER>.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>All
 <span class=SpellE>righty</span> then! In each of the following subsections,
-we’ll look at how to create a different kind of UML element, starting with
+we�ll look at how to create a different kind of UML element, starting with
 models.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -486,7 +488,7 @@
 Wizards</b> category and press the <b>Next &gt;</b> button.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a file name (i.e. “ExtendedPO2.uml”) and press the <b>Next &gt;</b>
+Enter a file name (i.e. �ExtendedPO2.uml�) and press the <b>Next &gt;</b>
 button.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -500,7 +502,7 @@
 editor.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>7)
-Enter a value (i.e. “epo2”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (i.e. �epo2�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -512,59 +514,59 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=597
 src="article_files/image026.jpg" v:shapes="_x0000_i1089"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns a model with a
 specified name.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Model <span class=SpellE>createModel</span>(String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1034"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Model <span class=SpellE>model</span> = <span class=SpellE><span
+2'>�������� </span>Model <span class=SpellE>model</span> = <span class=SpellE><span
 class=GramE>UMLFactory.eINSTANCE.createModel</span></span><span class=GramE>(</span>);</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1035"
 src="../../../../images/tag_2.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE><span class=GramE>model.setName</span></span><span
+2'>�������� </span><span class=SpellE><span class=GramE>model.setName</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1036"
 src="../../../../images/tag_3.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=GramE>out(</span>&quot;Model '&quot; + <span
+2'>�������� </span><span class=GramE>out(</span>&quot;Model '&quot; + <span
 class=SpellE>model.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=14 id="_x0000_i1037" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=GramE>return</span> model;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=GramE>return</span> model;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>First,
 we ask the UML factory singleton <img border=0 width=24 height=14
 id="_x0000_i1038" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to create a model, and we set its <span
+style='mso-spacerun:yes'>�</span>to create a model, and we set its <span
 class=GramE>name </span><img border=0 width=24 height=14 id="_x0000_i1039"
 src="../../../../images/tag_2.gif" align=CENTER>. Then, we output information <img
 border=0 width=24 height=14 id="_x0000_i1040" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>to the user to let them
+align=CENTER><span style='mso-spacerun:yes'>�</span>to the user to let them
 know that the model has been successfully created. Finally, we return <img
 border=0 width=24 height=14 id="_x0000_i1041" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>the model. You’ll notice
+align=CENTER><span style='mso-spacerun:yes'>�</span>the model. You�ll notice
 most, if not all, of the code snippets in this article will follow this pattern
-– create the element (and set some properties on it), inform the user, and
+� create the element (and set some properties on it), inform the user, and
 return it.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=63 height=14 id="_x0000_i1042" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>All named elements (a model is a type of named
-element) have a “simple” name and a qualified name. The qualified name is the
-“simple” name prefixed with the “simple” names of <span class=GramE>all of the</span>
-named element’s containing namespaces. Note that the qualified name of a named
+style='mso-spacerun:yes'>�</span>All named elements (a model is a type of named
+element) have a �simple� name and a qualified name. The qualified name is the
+�simple� name prefixed with the �simple� names of <span class=GramE>all of the</span>
+named element�s containing namespaces. Note that the qualified name of a named
 element is only defined if all of its containing namespaces have non-empty
-“simple” names.</p>
+�simple� names.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a model named
-‘epo2’ as follows:</p>
+let�s see this method in action. For example, we could create a model named
+�epo2� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Model epo2Model = <span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Model epo2Model = <span
 class=SpellE><span class=GramE>createModel</span></span><span class=GramE>(</span>&quot;epo2&quot;);</pre>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -586,45 +588,45 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (e.g. “bar”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (e.g. �bar�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>We
-don’t actually need to create a package because our sample model doesn’t
-contain any… except of course for the root package (i.e. the model). That’s
-right – a model is a type of package.</p>
+don�t actually need to create a package because our sample model doesn�t
+contain any� except of course for the root package (i.e. the model). That�s
+right � a model is a type of package.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns a package with a
 specified name in a specified nesting package.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static org.eclipse.uml2.uml.Package <span
 class=SpellE>createPackage</span>(</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=GramE>org.eclipse.uml2.uml.Package</span> <span
+style='mso-tab-count:3'>������������������� </span><span class=GramE>org.eclipse.uml2.uml.Package</span> <span
 class=SpellE>nestingPackage</span>, String name) {</pre><pre style='margin-left:
 9.0pt'><img border=0 width=24 height=14 id="_x0000_i1043"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>org.eclipse.uml2.uml.Package package_ = <span class=SpellE>nestingPackage</span></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+2'>�������� </span>org.eclipse.uml2.uml.Package package_ = <span class=SpellE>nestingPackage</span></pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createNestedPackage</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Package '&quot; + <span class=SpellE>package_.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> package_;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> package_;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here,
-instead of asking the factory to create the package for us, we’re making use of
+instead of asking the factory to create the package for us, we�re making use of
 one of the factory methods <img border=0 width=24 height=14 id="_x0000_i1044"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>in the UML2 API.</p>
+style='mso-spacerun:yes'>�</span>in the UML2 API.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=63 height=14 id="_x0000_i1045" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>In UML2, a factory method exists for every feature
+style='mso-spacerun:yes'>�</span>In UML2, a factory method exists for every feature
 that can contain other elements (i.e. every containment feature). In addition,
 more convenient factory methods exist for commonly created types (like
 packages). In this case, the package has a feature (<span class=SpellE><code>packagedElement</code></span>)
@@ -641,10 +643,10 @@
 nested package, set its name, and add the package to its list of packaged elements.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a package named
-‘bar’ in nesting package ‘<span class=SpellE>foo</span>’ as follows:</p>
+let�s see this method in action. For example, we could create a package named
+�bar� in nesting package �<span class=SpellE>foo</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>org.eclipse.uml2.uml.Package</span> <span class=SpellE>barPackage</span> = <span
 class=SpellE>createPackage</span>(<span class=SpellE>fooPackage</span>, &quot;bar&quot;);</pre>
 
@@ -653,7 +655,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>A
 primitive type defines a predefined data type, without any relevant
-substructure. Primitive types used in UML™ itself include <code>Boolean</code>,
+substructure. Primitive types used in UML� itself include <code>Boolean</code>,
 <code>Integer</code>, <span class=SpellE><code>UnlimitedNatural</code></span>,
 and <code>String</code>. To create a primitive type using the UML editor,
 follow these steps:</p>
@@ -666,12 +668,12 @@
 Type</b> option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “<span class=SpellE>int</span>”) for the <b>Name</b>
+Enter a value (i.e. �<span class=SpellE>int</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1046" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining primitive types from the
+style='mso-spacerun:yes'>�</span>Create the remaining primitive types from the
 ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -683,50 +685,50 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=597
 src="article_files/image004.jpg" v:shapes="_x0000_i1090"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns a primitive type with
 a specified name in a specified package.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static <span class=SpellE>PrimitiveType</span> <span
 class=SpellE>createPrimitiveType</span>(</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
+style='mso-tab-count:3'>������������������� </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1047"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE>PrimitiveType</span> <span class=SpellE>primitiveType</span> = (<span
+2'>�������� </span><span class=SpellE>PrimitiveType</span> <span class=SpellE>primitiveType</span> = (<span
 class=SpellE>PrimitiveType</span>) package_</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>.<span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span>.<span class=SpellE><span
 class=GramE>createOwnedPrimitiveType</span></span><span class=GramE>(</span>name);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Primitive type '&quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Primitive type '&quot; + <span
 class=SpellE>primitiveType.getQualifiedName</span>()</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ &quot;' created.&quot;);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> <span
 class=SpellE>primitiveType</span>;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedPrimitiveType</code></span></span><span
 class=GramE><code>(</code></span><code>String)</code> convenience factory
 method <img border=0 width=24 height=13 id="_x0000_i1048"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the package to create a primitive type
+style='mso-spacerun:yes'>�</span>to ask the package to create a primitive type
 with the specified name as one of its packaged elements.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a primitive type
-named ‘<span class=SpellE>int</span>’ in model ‘epo2’ as follows:</p>
+let�s see this method in action. For example, we could create a primitive type
+named �<span class=SpellE>int</span>� in model �epo2� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE>PrimitiveType</span> <span class=SpellE>intPrimitiveType</span> = <span
 class=SpellE><span class=GramE>createPrimitiveType</span></span><span
 class=GramE>(</span>epo2Model, &quot;<span class=SpellE>int</span>&quot;);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1049" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining primitive types from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -745,7 +747,7 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “<span class=SpellE>OrderStatus</span>”) for the <b>Name</b>
+Enter a value (i.e. �<span class=SpellE>OrderStatus</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -757,42 +759,42 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=597
 src="article_files/image006.jpg" v:shapes="_x0000_i1091"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns an enumeration with a
 specified name in a specified package.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Enumeration <span class=SpellE>createEnumeration</span>(</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1050"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Enumeration <span class=SpellE>enumeration</span> = (Enumeration) package_</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+2'>�������� </span>Enumeration <span class=SpellE>enumeration</span> = (Enumeration) package_</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createOwnedEnumeraton</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Enumeration '&quot; + <span class=SpellE>enumeration.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> enumeration;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> enumeration;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedEnumeration</code></span></span><span
 class=GramE><code>(</code></span><code>String)</code> convenience factory
 method <img border=0 width=24 height=13 id="_x0000_i1051"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the package to create a primitive type
+style='mso-spacerun:yes'>�</span>to ask the package to create a primitive type
 with the specified name as one of its packaged elements.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an enumeration
-named ‘<span class=SpellE>OrderStatus</span>’ in model ‘epo2’ as follows:</p>
+let�s see this method in action. For example, we could create an enumeration
+named �<span class=SpellE>OrderStatus</span>� in model �epo2� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Enumeration <span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Enumeration <span
 class=SpellE>orderStatusEnumeration</span> = <span class=SpellE><span
 class=GramE>createEnumeration</span></span><span class=GramE>(</span>epo2Model,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>&quot;<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>&quot;<span
 class=SpellE>OrderStatus</span>&quot;);</pre>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -811,12 +813,12 @@
 Literal</b> option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “Pending”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (i.e. �Pending�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1052" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining enumeration literals from
+style='mso-spacerun:yes'>�</span>Create the remaining enumeration literals from
 the ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -828,51 +830,51 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=597
 src="article_files/image008.jpg" v:shapes="_x0000_i1092"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns an enumeration literal
 with a specified name in a specified enumeration.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static <span class=SpellE>EnumerationLiteral</span> <span
 class=SpellE>createEnumerationLiteral</span>(</pre><pre style='margin-left:
-9.0pt'><span style='mso-tab-count:3'>                    </span>Enumeration <span
+9.0pt'><span style='mso-tab-count:3'>������������������� </span>Enumeration <span
 class=SpellE>enumeration</span>, String name) {</pre><pre style='margin-left:
 9.0pt'><img border=0 width=24 height=13 id="_x0000_i1053"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE>EnumerationLiteral</span> <span
+2'>�������� </span><span class=SpellE>EnumerationLiteral</span> <span
 class=SpellE>enumerationLiteral</span> = enumeration</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createOwnedLiteral</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Enumeration literal '&quot; + <span class=SpellE>enumerationLiteral.getQualifiedName</span>()</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ &quot;' created.&quot;);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> <span
 class=SpellE>enumerationLiteral</span>;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a <span class=SpellE><span class=GramE><code>createOwnedLiteral</code></span></span><span
 class=GramE><code>(</code></span><code>String)</code> convenience factory
 method <img border=0 width=24 height=13 id="_x0000_i1054"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the enumeration to create an
+style='mso-spacerun:yes'>�</span>to ask the enumeration to create an
 enumeration literal with the specified name as one of its owned literals.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an enumeration
-literal named ‘Pending’ in enumeration ‘<span class=SpellE>OrderStatus</span>’
+let�s see this method in action. For example, we could create an enumeration
+literal named �Pending� in enumeration �<span class=SpellE>OrderStatus</span>�
 as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>createEnumerationLiteral</span></span><span
 class=GramE>(</span><span class=SpellE>orderStatusEnumeration</span>, &quot;Pending&quot;);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1055" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining enumeration literals from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -891,12 +893,12 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “Supplier”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (i.e. �Supplier�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1056" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining classes from the
+style='mso-spacerun:yes'>�</span>Create the remaining classes from the
 ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -908,59 +910,59 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=679
 src="article_files/image010.jpg" v:shapes="_x0000_i1093"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns <span class=GramE>a(</span>n)
 (abstract) class with a specified name in a specified package.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static org.eclipse.uml2.uml.Class <span
 class=SpellE>createClass</span>(</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>org.eclipse.uml2.uml.Package package_, String name, <span
+style='mso-tab-count:3'>������������������� </span>org.eclipse.uml2.uml.Package package_, String name, <span
 class=SpellE><span class=GramE>boolean</span></span> <span class=SpellE>isAbstract</span>) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1057"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>org.eclipse.uml2.uml.Class class_ = <span class=SpellE>package_.<span
+2'>�������� </span>org.eclipse.uml2.uml.Class class_ = <span class=SpellE>package_.<span
 class=GramE>createOwnedClass</span></span><span class=GramE>(</span>name,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>isAbstract</span></span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Class '&quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Class '&quot; + <span
 class=SpellE>class_.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> class_;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> class_;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedClass</code></span></span><span
 class=GramE><code>(</code></span><code>String, <span class=SpellE>boolean</span>)</code>
 convenience factory method <img border=0 width=24 height=13 id="_x0000_i1058"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the package to create a class with the
+style='mso-spacerun:yes'>�</span>to ask the package to create a class with the
 specified name as one of its packaged elements, and set the <span class=SpellE><code>isAbstract</code></span>
 attribute of the class based on the specified <span class=SpellE><code>boolean</code></span>
 argument.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1059" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>You may have noticed that we have been fully
+style='mso-spacerun:yes'>�</span>You may have noticed that we have been fully
 qualifying references to the <code>Package</code> and <code>Class</code>
 interfaces. This is recommended so that these types are not confused with <span
 class=SpellE><code>java.lang.Class</code></span> and <span class=SpellE><code>java.lang.Package</code></span>,
 which are imported implicitly in Java.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a non-abstract
-class named ‘Supplier’ in model ‘epo2’ as follows:</p>
+let�s see this method in action. For example, we could create a non-abstract
+class named �Supplier� in model �epo2� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>org.eclipse.uml2.uml.Class</span> <span class=SpellE>supplierClass</span> = <span
 class=SpellE>createClass</span>(epo2Model,</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>&quot;Supplier&quot;, false);</pre>
+style='mso-tab-count:3'>������������������� </span>&quot;Supplier&quot;, false);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1060" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining classes from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -987,7 +989,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1061" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining generalizations from the
+style='mso-spacerun:yes'>�</span>Create the remaining generalizations from the
 ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -999,51 +1001,51 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=874 height=679
 src="article_files/image012.jpg" v:shapes="_x0000_i1094"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns a generalization
 between specified specific and general classifiers.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Generalization <span class=SpellE>createGeneralization</span>(</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>Classifier <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>Classifier <span
 class=SpellE>specificClassifier</span>, Classifier <span class=SpellE>generalClassifier</span>) {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Generalization <span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Generalization <span
 class=SpellE>generalization</span> = <span class=SpellE>specificClassifier</span></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1062"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span>.<span class=SpellE><span class=GramE>createGeneralization</span></span><span
+3'>���������������� </span>.<span class=SpellE><span class=GramE>createGeneralization</span></span><span
 class=GramE>(</span><span class=SpellE>generalClassifier</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Generalization &quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Generalization &quot; + <span
 class=SpellE>specificClassifier.getQualifiedName</span>() + &quot; -&gt;&gt; &quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ <span
 class=SpellE><span class=GramE>generalClassifier.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot; created.&quot;);</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> generalization;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> generalization;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience factory method on the specific classifier that creates a
 generalization <img border=0 width=24 height=13 id="_x0000_i1063"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>as one of its children and sets the general
+style='mso-spacerun:yes'>�</span>as one of its children and sets the general
 classifier to the specified argument.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a generalization
-between specific class ‘<span class=SpellE>USAddress</span>’ and general class
-‘Address’ as follows:</p>
+let�s see this method in action. For example, we could create a generalization
+between specific class �<span class=SpellE>USAddress</span>� and general class
+�Address� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>createGeneralization</span></span><span
 class=GramE>(</span><span class=SpellE>usAddressClass</span>, <span
 class=SpellE>addressClass</span>);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1064" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining generalizations from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -1056,7 +1058,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1065" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The types of <code>Classifier</code> that can
+style='mso-spacerun:yes'>�</span>The types of <code>Classifier</code> that can
 own attributes in UML2 include <code>Artifact</code>, <span class=SpellE><code>DataType</code></span>,
 <code>Interface</code>, <code>Signal</code>, and <span class=SpellE><code>StructuredClassifier</code></span>
 (and their subtypes).</p>
@@ -1072,7 +1074,7 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. &quot;name”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (i.e. &quot;name�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -1085,9 +1087,9 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1066" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>Lower and upper values for multiplicity
+style='mso-spacerun:yes'>�</span>Lower and upper values for multiplicity
 elements (like properties) are represented as value specifications (first-class
-objects) in UML™ 2.x. The default value for lower and upper bounds is 1, unless
+objects) in UML� 2.x. The default value for lower and upper bounds is 1, unless
 a child value specification exists, in which case its value is used. Specifying
 a value for the lower or upper property will create a child value specification
 if none exists, or update its value if one does. Note that, to be treated as a
@@ -1096,7 +1098,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1067" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining attributes from the
+style='mso-spacerun:yes'>�</span>Create the remaining attributes from the
 ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -1108,72 +1110,72 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=932 height=858
 src="article_files/image014.jpg" v:shapes="_x0000_i1095"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns an attribute with a
 specified upper bound, lower bound, type, and name in a specified class.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Property <span class=SpellE>createAttribute</span>(org.eclipse.uml2.uml.Class class_,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>String name, Type <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>String name, Type <span
 class=SpellE>type</span>, <span class=SpellE>int</span> <span class=SpellE>lowerBound</span>, <span
 class=SpellE>int</span> <span class=SpellE>upperBound</span>) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1068"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Property attribute = <span class=SpellE>class_.<span
+2'>�������� </span>Property attribute = <span class=SpellE>class_.<span
 class=GramE>createOwnedAttribute</span></span><span class=GramE>(</span>name, type,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>lowerBound</span></span>, <span class=SpellE>upperBound</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE>StringBuffer</span> <span
+style='mso-tab-count:2'>����������� </span><span class=SpellE>StringBuffer</span> <span
 class=SpellE>sb</span> = new <span class=SpellE><span class=GramE>StringBuffer</span></span><span
 class=GramE>(</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;Attribute '&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>attribute.getQualifiedName</span>());</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;' : &quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>type.getQualifiedName</span>());</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; [&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>lowerBound</span>);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;..&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>LiteralUnlimitedNatural.UNLIMITED</span> == <span class=SpellE>upperBound</span></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? &quot;*&quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? &quot;*&quot;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: <span
 class=SpellE><span class=GramE>String.valueOf</span></span><span class=GramE>(</span><span
 class=SpellE>upperBound</span>));</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;]&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span><span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span><span
 class=SpellE>sb.toString</span>());</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>return</span> attribute;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a <span class=SpellE><code>createOwnedAttribute</code></span><code>(String,
 Type, <span class=SpellE>int</span>, <span class=SpellE>int</span>)</code>
 convenience factory method <img border=0 width=24 height=13 id="_x0000_i1069"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the class to create a property as one
+style='mso-spacerun:yes'>�</span>to ask the class to create a property as one
 of its owned attributes, set the type of the attribute to the specified type,
 and set the lower and upper bounds of the attribute (the factory method
 indirectly creates a literal integer and literal unlimited natural,
@@ -1181,23 +1183,23 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1070" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>LiteralUnlimitedNatural.UNLIMITED</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>LiteralUnlimitedNatural.UNLIMITED</code></span>
 constant represents the unlimited value for upper bounds (-1), as it does in
 EMF; when setting this value in the <b style='mso-bidi-font-weight:normal'>Properties</b>
-view, an asterisk (‘*’) can alternatively be specified.</p>
+view, an asterisk (�*�) can alternatively be specified.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an attribute with
-multiplicity 0<span class=GramE>..1</span> of type ‘String’ named ‘name’ in
-class ‘Supplier’ as follows:</p>
+let�s see this method in action. For example, we could create an attribute with
+multiplicity 0<span class=GramE>..1</span> of type �String� named �name� in
+class �Supplier� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>createAttribute</span></span><span class=GramE>(</span><span
 class=SpellE>supplierClass</span>, &quot;name&quot;, <span class=SpellE>stringPrimitiveType</span>, 0, 1);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1071" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining attributes from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -1212,9 +1214,9 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1072" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The notion of association end navigability was
-separated from that of ownership in the UML™ 2.0 <span class=GramE>specification</span>,
-so a property that is owned by an association isn’t necessarily non-navigable
+style='mso-spacerun:yes'>�</span>The notion of association end navigability was
+separated from that of ownership in the UML� 2.0 <span class=GramE>specification</span>,
+so a property that is owned by an association isn�t necessarily non-navigable
 as of UML2 2.0.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>To
@@ -1228,7 +1230,7 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (e.g. “<span class=SpellE>A_orders_supplier</span>”) for the <b>Name</b>
+Enter a value (e.g. �<span class=SpellE>A_orders_supplier</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -1277,7 +1279,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1073" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining associations from the
+style='mso-spacerun:yes'>�</span>Create the remaining associations from the
 ExtendedPO2 model using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -1289,177 +1291,177 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=932 height=858
 src="article_files/image016.jpg" v:shapes="_x0000_i1096"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns an association between
 two specified types, with ends that have the specified upper bounds, lower
 bounds, role names, aggregation kinds, and <span class=SpellE>navigabilities</span>.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Association <span class=SpellE>createAssociation</span>(Type type1,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>boolean</span></span> end1IsNavigable, <span
 class=SpellE>AggregationKind</span> end1Aggregation,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>String end1Name, <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>String end1Name, <span
 class=SpellE>int</span> end1LowerBound, <span class=SpellE>int</span> end1UpperBound,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>Type type2, <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>Type type2, <span
 class=SpellE><span class=GramE>boolean</span></span> end2IsNavigable,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE>AggregationKind</span> end2Aggregation, String end2Name,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>int</span></span> end2LowerBound, <span
 class=SpellE>int</span> end2UpperBound) {</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1074"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Association <span class=SpellE>association</span> = <span
+2'>�������� </span>Association <span class=SpellE>association</span> = <span
 class=GramE>type1.createAssociation(</span>end1IsNavigable,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>end1Aggregation, end1Name, end1LowerBound, end1UpperBound, type2,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>end2IsNavigable, end2Aggregation, end2Name, end2LowerBound,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>end2UpperBound);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>end1Aggregation, end1Name, end1LowerBound, end1UpperBound, type2,</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>end2IsNavigable, end2Aggregation, end2Name, end2LowerBound,</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>end2UpperBound);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE>StringBuffer</span> <span
+style='mso-tab-count:2'>����������� </span><span class=SpellE>StringBuffer</span> <span
 class=SpellE>sb</span> = new <span class=SpellE><span class=GramE>StringBuffer</span></span><span
 class=GramE>(</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;Association &quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>if</span> (null == end1Name || 0 == end1Name.length()) {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='mso-tab-count:2'>����������� </span><span class=GramE>if</span> (null == end1Name || 0 == end1Name.length()) {</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>'{');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>type1.getQualifiedName());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>'}');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>} else {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>} else {</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;'&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>type1.getQualifiedName());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>NamedElement.SEPARATOR</span>);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>end1Name);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;'&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>}</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>}</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; [&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>end1LowerBound);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;..&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>LiteralUnlimitedNatural.UNLIMITED</span> == end1UpperBound</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? &quot;*&quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? &quot;*&quot;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: <span
 class=SpellE><span class=GramE>String.valueOf</span></span><span class=GramE>(</span>end1UpperBound));</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;] &quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>end2IsNavigable</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? '&lt;'</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: '-');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? '&lt;'</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: '-');</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>'-');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>end1IsNavigable</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? '&gt;'</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: '-');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? '&gt;'</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: '-');</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>' <span
 class=SpellE>'</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>if</span> (null == end2Name || 0 == end2Name.length()) {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>'{');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>type2.getQualifiedName());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>'}');</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>} else {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>} else {</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;'&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>type2.getQualifiedName());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>NamedElement.SEPARATOR</span>);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>end2Name);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;'&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>}</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>}</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; [&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>end2LowerBound);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;..&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>LiteralUnlimitedNatural.UNLIMITED</span> == end2UpperBound</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? &quot;*&quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? &quot;*&quot;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: <span
 class=SpellE><span class=GramE>String.valueOf</span></span><span class=GramE>(</span>end2UpperBound));</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;]&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span><span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span><span
 class=SpellE>sb.toString</span>());</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>return</span> association;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience factory method on the first end type that creates an
 association (and its ends) between it and another type <img border=0 width=24
 height=13 id="_x0000_i1075" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>as one of its siblings (i.e. as a child of its
+style='mso-spacerun:yes'>�</span>as one of its siblings (i.e. as a child of its
 package namespace) and with the specified upper bounds, lower bounds, role
 names, aggregation kinds, and <span class=SpellE>navigabilities</span>. The
 owners of the association ends (properties) are based on the specified <span
-class=SpellE>navigabilities</span> – navigable ends are owned by the end type
+class=SpellE>navigabilities</span> � navigable ends are owned by the end type
 if allowed, otherwise they are owned by the association; non-navigable ends are
 owned by the association.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1076" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>NamedElement.SEPARATOR</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>NamedElement.SEPARATOR</code></span>
 constant represents the standard separator (<b>::</b>) used in qualified names.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a unidirectional
-composition (composite association) between classes ‘Supplier’ and ‘<span
-class=SpellE>PurchaseOrder</span>’ in model ‘epo2’ as follows:</p>
+let�s see this method in action. For example, we could create a unidirectional
+composition (composite association) between classes �Supplier� and �<span
+class=SpellE>PurchaseOrder</span>� in model �epo2� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>createAssociation</span></span><span
 class=GramE>(</span><span class=SpellE>supplierClass</span>, true,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE>AggregationKind.COMPOSITE_LITERAL</span>, &quot;orders&quot;, 0,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE>LiteralUnlimitedNatural.UNLIMITED</span>, <span class=SpellE>purchaseOrderClass</span>,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>false, <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>false, <span
 class=SpellE>AggregationKind.NONE_LITERAL</span>, &quot;&quot;, 1, 1);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1077" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
 remaining associations from the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Saving
 Models</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Now
-that we’ve spent all this time creating a model, we’d better save our work.
+that we�ve spent all this time creating a model, we�d better save our work.
 When we created our model using the UML model wizard, a UML resource was
 created for us, so now all that needs to be done is to serialize the contents
 of our model as XMI to our file on disk (i.e. <code>ExtendedPO2.uml</code>). To
@@ -1468,66 +1470,66 @@
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>1)
 Select the <b>File &gt; Save</b> menu item.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>It’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>It�s
 that simple. Programmatically, we have a bit more work to do because so far,
-we’ve been creating our model in a vacuum, i.e. without a containing resource.
+we�ve been creating our model in a vacuum, i.e. without a containing resource.
 The code snippet below shows a method that saves a specified package to a
 resource with a specified URI.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void save(org.eclipse.uml2.uml.Package package_, URI <span
 class=SpellE>uri</span>) {</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=13 id="_x0000_i1078" src="../../../../images/tag_1.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span>Resource <span
+align=CENTER><span style='mso-tab-count:2'>�������� </span>Resource <span
 class=SpellE>resource</span> = new <span class=SpellE><span class=GramE>ResourceSetImpl</span></span><span
 class=GramE>(</span>).<span class=SpellE>createResource</span>(<span
 class=SpellE>uri</span>);</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=13 id="_x0000_i1079" src="../../../../images/tag_2.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE><span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE><span
 class=GramE>resource.getContents</span></span><span class=GramE>(</span>).add(package_);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>try</span> {</pre><pre
+style='mso-tab-count:2'>����������� </span><span class=GramE>try</span> {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1080"
 src="../../../../images/tag_3.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span><span class=SpellE><span class=GramE>resource.save</span></span><span
+3'>���������������� </span><span class=SpellE><span class=GramE>resource.save</span></span><span
 class=GramE>(</span>null);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=GramE>out(</span>&quot;Done.&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>} catch (<span
+style='mso-tab-count:3'>������������������� </span><span class=GramE>out(</span>&quot;Done.&quot;);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>} catch (<span
 class=SpellE>IOException</span> <span class=SpellE>ioe</span>) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1081"
 src="../../../../images/tag_4.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span><span class=GramE>err(</span><span class=SpellE>ioe.getMessage</span>());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>}</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+3'>���������������� </span><span class=GramE>err(</span><span class=SpellE>ioe.getMessage</span>());</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>}</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we create a resource set <img border=0 width=24 height=13 id="_x0000_i1082"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>and a resource with the specified URI, add the
-package to the resource’s contents <img border=0 width=24 height=13
+style='mso-spacerun:yes'>�</span>and a resource with the specified URI, add the
+package to the resource�s contents <img border=0 width=24 height=13
 id="_x0000_i1083" src="../../../../images/tag_2.gif" align=CENTER>, and ask the
 resource to save itself <img border=0 width=24 height=13 id="_x0000_i1084"
 src="../../../../images/tag_3.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>using the default options. If an exception
+style='mso-spacerun:yes'>�</span>using the default options. If an exception
 occurs, we notify the user <img border=0 width=24 height=13 id="_x0000_i1085"
 src="../../../../images/tag_4.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>via our handy utility method.</p>
+style='mso-spacerun:yes'>�</span>via our handy utility method.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could save the ‘epo2’ model to
-a resource with URI ‘ExtendedPO2.uml’ (relative to a URI passed in as an
+let�s see this method in action. For example, we could save the �epo2� model to
+a resource with URI �ExtendedPO2.uml� (relative to a URI passed in as an
 argument) as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>save(</span>epo2Model, <span class=SpellE>URI.createURI</span>(<span
 class=SpellE>args</span>[0]).<span class=SpellE>appendSegment</span>(&quot;ExtendedPO2&quot;)</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>appendFileExtension</span></span><span
 class=GramE>(</span><span class=SpellE>UMLResource.FILE_EXTENSION</span>));</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1086" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>UMLResource.FILE_EXTENSION</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>UMLResource.FILE_EXTENSION</code></span>
 constant represents the file extension for UML resources (<code>.<span
 class=SpellE>uml</span></code>). Note that the <span class=SpellE><code>UMLResource</code></span>
 interface contains a number of constants that you will find useful when working
@@ -1536,8 +1538,8 @@
 <h2 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Conclusion</h2>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Congratulations!
-If you’ve made it this far, you’ve successfully created a simple model
-programmatically and/or using the UML editor. There’s a whole lot more that
+If you�ve made it this far, you�ve successfully created a simple model
+programmatically and/or using the UML editor. There�s a whole lot more that
 could be said, but the purpose of this article was just to get you started.
 Stay tuned for more articles on how to develop tools with UML2.</p>
 
@@ -1562,9 +1564,9 @@
 href="http://download.eclipse.org/modeling/mdt/uml2/downloads/articles/uml2.articles_200607181325.zip">uml2.articles_200607181325.zip</a>
 into your Eclipse home directory and import the <code>com.ibm.uml2.articles</code>
 plug-in into your workspace as a binary project with linked content (<b>File
-&gt; Import… &gt; External Plug-ins and Fragments</b>). You can run the <code>GettingStartedWithUML2</code>
-class as a Java application with a file URI (e.g. “file:/C:/Getting <span
-class=GramE>Started</span> with UML2”) as a program argument.</p>
+&gt; Import� &gt; External Plug-ins and Fragments</b>). You can run the <code>GettingStartedWithUML2</code>
+class as a Java application with a file URI (e.g. �file:/C:/Getting <span
+class=GramE>Started</span> with UML2�) as a program argument.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 style='font-size:7.5pt'>Java and all Java-based trademarks and logos are
diff --git a/uml2/docs/articles/Introduction_to_UML2_Profiles/article.html b/uml2/docs/articles/Introduction_to_UML2_Profiles/article.html
index 42f5017..1b327bb 100644
--- a/uml2/docs/articles/Introduction_to_UML2_Profiles/article.html
+++ b/uml2/docs/articles/Introduction_to_UML2_Profiles/article.html
@@ -288,7 +288,7 @@
 
 <p class=MsoNormal align=right style='text-align:right'><span style='font-size:
 10.0pt;font-family:Arial'>&nbsp; </span><span style='font-size:10.0pt'>Copyright
-© 2004, 2008 International Business Machines Corp.</span><span
+� 2004, 2008 International Business Machines Corp.</span><span
 style='font-size:10.0pt;font-family:Arial'> <o:p></o:p></span></p>
 
 <div align=right>
@@ -304,6 +304,8 @@
 
 </div>
 
+<h3><span style='color:red'><b>NOTE that this article is obsolete; please see <a href="http://wiki.eclipse.org/MDT/UML2/Introduction_to_UML2_Profiles">here</a> instead.</b></span></h3>
+
 <h1><img width=120 height=86 id="_x0000_i1025" src="../../../../images/Idea.jpg"
 align=CENTER></h1>
 
@@ -343,29 +345,29 @@
 href="http://www.eclipse.org/modeling/emf/downloads/?project=emf">EMF 2.4</a></span>,
 and <span class=MsoHyperlink><a
 href="http://www.eclipse.org/modeling/mdt/downloads/?project=uml2">UML2 2.2</a></span>
-installed.<span style='mso-spacerun:yes'>  </span></p>
+installed.<span style='mso-spacerun:yes'>� </span></p>
 
 <p>You can either download the zips individually and expand them out or follow
-the steps below:<span style='mso-spacerun:yes'>  </span></p>
+the steps below:<span style='mso-spacerun:yes'>� </span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Download and run Eclipse 3.4</span></p>
+style='mso-spacerun:yes'>�</span>Download and run Eclipse 3.4</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select the <b>Help</b> &gt; <b>Software
-Updates … </b>menu</span></p>
+style='mso-spacerun:yes'>�</span>Select the <b>Help</b> &gt; <b>Software
+Updates � </b>menu</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>3)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select the <b>Available Software</b> tab and
+style='mso-spacerun:yes'>�</span>Select the <b>Available Software</b> tab and
 expand the <b>Ganymede\Model and Model Development</b> tree item.</span></p>
 
 <p style='margin-left:.25in'><!--[if gte vml 1]><v:shapetype id="_x0000_t75"
@@ -398,15 +400,15 @@
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>4)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Select <b>UML2 End-User Features</b> and <b>UML2
-Extender SDK</b>.<span style='mso-spacerun:yes'>  </span>The version should
+style='mso-spacerun:yes'>�</span>Select <b>UML2 End-User Features</b> and <b>UML2
+Extender SDK</b>.<span style='mso-spacerun:yes'>� </span>The version should
 indicate 2.2.0 (or later).</span></p>
 
 <p style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1;
 tab-stops:list .5in'><![if !supportLists]><span style='mso-fareast-font-family:
 Arial'><span style='mso-list:Ignore'>5)<span style='font:7.0pt "Times New Roman"'>
 </span></span></span><![endif]><span dir=LTR><span
-style='mso-spacerun:yes'> </span>Click <b>Install<span class=GramE>… <span
+style='mso-spacerun:yes'>�</span>Click <b>Install<span class=GramE>� <span
 style='font-weight:normal'>.</span></span></b></span></p>
 
 <p>At this stage, UML2 2.2 and all dependencies should be installed.</p>
@@ -415,13 +417,13 @@
 
 <p>This article will walk you through the basics of creating and applying
 profiles using UML2. Using a subset of the <span class=SpellE>Ecore</span>
-profile (see below) and the model we described in the “Getting Started with
-UML2” article [1] (the ExtendedPO2 model, shamelessly “borrowed” from the EMF
-“bible” [2]) as an example, we’ll look at what’s involved in creating some of
+profile (see below) and the model we described in the �Getting Started with
+UML2� article [1] (the ExtendedPO2 model, shamelessly �borrowed� from the EMF
+�bible� [2]) as an example, we�ll look at what�s involved in creating some of
 the more common elements that make up a profile. For each type of element,
-we’ll first explain the creation process using the sample UML editor and
-explore how to accomplish the same thing using Java code. Then we’ll look at
-what’s involved in applying profiles and stereotypes to models. The ExtendedPO2
+we�ll first explain the creation process using the sample UML editor and
+explore how to accomplish the same thing using Java code. Then we�ll look at
+what�s involved in applying profiles and stereotypes to models. The ExtendedPO2
 model is shown below.</p>
 
 <p><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style='width:581.25pt;
@@ -431,9 +433,9 @@
 src="article_files/image002.gif" v:shapes="_x0000_i1027"><![endif]></p>
 
 <p>As described in the EMF book, some of the attributes of certain <span
-class=SpellE>Ecore</span> elements cannot be expressed directly in UML™. EMF
+class=SpellE>Ecore</span> elements cannot be expressed directly in UML�. EMF
 provides a Rose property file (<span class=SpellE><span style='font-family:
-"Courier New"'>ecore.pty</span></span>) that defines all the non- UML™
+"Courier New"'>ecore.pty</span></span>) that defines all the non- UML�
 properties needed to completely express an EMF model using Rational Rose. The
 same thing can be achieved for a UML2 model using a profile.</p>
 
@@ -461,13 +463,13 @@
 
 <h2>Getting Started</h2>
 
-<p>Before getting started, you’ll need to create a simple project in your
-workspace. This project will serve as the container for the profile that we’ll
+<p>Before getting started, you�ll need to create a simple project in your
+workspace. This project will serve as the container for the profile that we�ll
 create using the UML editor. To create a simple project for this article,
 follow these steps:</p>
 
 <p style='margin-left:27.5pt'>1) Select the <b>Window &gt; Open Perspective
-&gt; <span class=GramE>Other</span>…</b> menu item.</p>
+&gt; <span class=GramE>Other</span>�</b> menu item.</p>
 
 <p style='margin-left:27.5pt'>2) Select the <b>Resource</b> perspective and
 press the <b>OK</b> button.</p>
@@ -478,8 +480,8 @@
 <p style='margin-left:27.5pt'>4) Select the <b>Project</b> wizard from the <b>General</b>
 category and press the <b>Next &gt;</b> button.</p>
 
-<p style='margin-left:27.5pt'>5) Enter a project name (i.e. “Introduction to
-UML2 Profiles”), and press the <b>Finish</b> button.</p>
+<p style='margin-left:27.5pt'>5) Enter a project name (i.e. �Introduction to
+UML2 Profiles�), and press the <b>Finish</b> button.</p>
 
 <p>At this point your workspace should look something like this:</p>
 
@@ -490,47 +492,47 @@
 src="article_files/image040.jpg" v:shapes="_x0000_i1129"><![endif]></p>
 
 <p>OK, that should be enough to get us going with the UML editor. Now, to
-follow along with the programmatic approach to creating profiles, we’ll assume
-that you’ve created a Java class (named, say, “IntroductionToUML2Profiles”) in
+follow along with the programmatic approach to creating profiles, we�ll assume
+that you�ve created a Java class (named, say, �IntroductionToUML2Profiles�) in
 which you can write some code to construct our sample profile. The code
-snippets we’ll show assume you’ve defined the following utility methods to give
-the user information on the program’s status:</p>
+snippets we�ll show assume you�ve defined the following utility methods to give
+the user information on the program�s status:</p>
 
 <pre style='margin-left:9.0pt'><img border=0 width=24 height=14
 id="_x0000_i1030" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-tab-count:1'>  </span><span class=GramE>public</span> static <span
+style='mso-tab-count:1'>� </span><span class=GramE>public</span> static <span
 class=SpellE>boolean</span> DEBUG = true;</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void out(String output) {</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>if</span> (DEBUG) {</pre><pre
+style='mso-tab-count:2'>����������� </span><span class=GramE>if</span> (DEBUG) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1031"
 src="../../../../images/tag_2.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span><span class=SpellE><span class=GramE>System.out.println</span></span><span
+3'>���������������� </span><span class=SpellE><span class=GramE>System.out.println</span></span><span
 class=GramE>(</span>output);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span>}</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+style='mso-tab-count:2'>����������� </span>}</pre><pre style='margin-left:9.0pt'><span
+style='mso-tab-count:1'>���� </span>}</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void err(String error) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1032"
 src="../../../../images/tag_3.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE><span class=GramE>System.err.println</span></span><span
+2'>�������� </span><span class=SpellE><span class=GramE>System.err.println</span></span><span
 class=GramE>(</span>error);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>A
 static debug flag <img border=0 width=24 height=14 id="_x0000_i1033"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>can be used to enable or disable verbose information
-printed to the system’s output <span class=GramE>stream </span><img border=0
+style='mso-spacerun:yes'>�</span>can be used to enable or disable verbose information
+printed to the system�s output <span class=GramE>stream </span><img border=0
 width=24 height=14 id="_x0000_i1034" src="../../../../images/tag_2.gif"
-align=CENTER>. Errors will always be printed to the system’s error <span
+align=CENTER>. Errors will always be printed to the system�s error <span
 class=GramE>stream </span><img border=0 width=24 height=14 id="_x0000_i1035"
 src="../../../../images/tag_3.gif" align=CENTER>.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>All
 <span class=SpellE>righty</span> then! In each of the following subsections,
-we’ll look at how to create or manipulate a different kind of UML element,
+we�ll look at how to create or manipulate a different kind of UML element,
 starting with profiles.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -555,7 +557,7 @@
 Wizards</b> category and press the <b>Next &gt;</b> button.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a file name (i.e. “<span class=SpellE>Ecore.profile.uml</span>”) and
+Enter a file name (i.e. �<span class=SpellE>Ecore.profile.uml</span>�) and
 press the <b>Next &gt;</b> button.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -568,12 +570,12 @@
 Select the <b>Profile</b> element in the UML editor.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>7)
-Enter a value (i.e. “<span class=SpellE>ecore</span>”) for the <b>Name</b>
+Enter a value (i.e. �<span class=SpellE>ecore</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1036" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>By convention, resources that contain profiles
+style='mso-spacerun:yes'>�</span>By convention, resources that contain profiles
 end with a <code>.<span class=SpellE>profile.uml</span></code> file extension
 in UML2. </p>
 
@@ -586,52 +588,52 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=832 height=541
 src="article_files/image042.jpg" v:shapes="_x0000_i1130"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns a profile with a
 specified name.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Profile <span class=SpellE>createProfile</span>(String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1037"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Profile <span class=SpellE>profile</span> = <span
+2'>�������� </span>Profile <span class=SpellE>profile</span> = <span
 class=SpellE><span class=GramE>UMLFactory.eINSTANCE.createProfile</span></span><span
 class=GramE>(</span>);</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=14 id="_x0000_i1038" src="../../../../images/tag_2.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE><span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE><span
 class=GramE>profile.setName</span></span><span class=GramE>(</span>name);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=14 id="_x0000_i1039" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
 class=SpellE>profile.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=14 id="_x0000_i1040" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-tab-count:1'>  </span><span style='mso-tab-count:
-1'>        </span><span class=GramE>return</span> profile;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+align=CENTER><span style='mso-tab-count:1'>� </span><span style='mso-tab-count:
+1'>������� </span><span class=GramE>return</span> profile;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>First,
 we ask the UML factory singleton <img border=0 width=24 height=14
 id="_x0000_i1041" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to create a profile, and we set its <span
+style='mso-spacerun:yes'>�</span>to create a profile, and we set its <span
 class=GramE>name </span><img border=0 width=24 height=14 id="_x0000_i1042"
 src="../../../../images/tag_2.gif" align=CENTER>. Then, we output information <img
 border=0 width=24 height=14 id="_x0000_i1043" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>to the user to let them
+align=CENTER><span style='mso-spacerun:yes'>�</span>to the user to let them
 know that the profile has been successfully created. Finally, we return <img
 border=0 width=24 height=14 id="_x0000_i1044" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>the profile. You’ll notice
+align=CENTER><span style='mso-spacerun:yes'>�</span>the profile. You�ll notice
 most, if not all, of the code snippets in this article will follow this pattern
-– create the element (and set some properties on it), inform the user, and
+� create the element (and set some properties on it), inform the user, and
 return it.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a profile named ‘<span
-class=SpellE>ecore</span>’ as follows:</p>
+let�s see this method in action. For example, we could create a profile named �<span
+class=SpellE>ecore</span>� as follows:</p>
 
 <p style='margin-left:9.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-style='mso-tab-count:2'>                         </span>Profile <span
+style='mso-tab-count:2'>������������������������ </span>Profile <span
 class=SpellE>ecoreProfile</span> = <span class=SpellE><span class=GramE>createProfile</span></span><span
 class=GramE>(</span>&quot;<span class=SpellE>ecore</span>&quot;);</p>
 
@@ -655,7 +657,7 @@
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
 Select the <b style='mso-bidi-font-weight:normal'>UML Editor &gt; Package &gt;
-Import Type…</b> menu item.</p>
+Import Type�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Choose a primitive type (i.e. <span class=SpellE><b style='mso-bidi-font-weight:
@@ -665,7 +667,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1045" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Import the other required primitive type (<span
+style='mso-spacerun:yes'>�</span>Import the other required primitive type (<span
 class=SpellE><b style='mso-bidi-font-weight:normal'>UMLPrimitiveTypes::String</b></span>)
 into the <span class=SpellE>Ecore</span> profile using the UML editor.</p>
 
@@ -678,47 +680,47 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=832 height=541
 src="article_files/image008.jpg" v:shapes="_x0000_i1131"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically imports the primitive type with a
 specified name from the UML primitive <span class=GramE>types</span> library
 into a specified package and returns it.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static <span class=SpellE>PrimitiveType</span> <span
 class=SpellE>importPrimitiveType</span>(</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
+style='mso-tab-count:3'>������������������� </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1046"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Model <span class=SpellE>umlLibrary</span> = (Model) <span
+2'>�������� </span>Model <span class=SpellE>umlLibrary</span> = (Model) <span
 class=GramE>load(</span>URI</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>.<span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span>.<span class=SpellE><span
 class=GramE>createURI</span></span><span class=GramE>(</span><span
 class=SpellE>UMLResource.UML_PRIMITIVE_TYPES_LIBRARY_URI</span>));</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=14 id="_x0000_i1047" src="../../../../images/tag_2.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE>PrimitiveType</span> <span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE>PrimitiveType</span> <span
 class=SpellE>primitiveType</span> = (<span class=SpellE>PrimitiveType</span>) <span
 class=SpellE>umlLibrary</span></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span>.<span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span>.<span class=SpellE><span
 class=GramE>getOwnedType</span></span><span class=GramE>(</span>name);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=14 id="_x0000_i1048" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE>package_.<span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE>package_.<span
 class=GramE>createElementImport</span></span><span class=GramE>(</span><span
 class=SpellE>primitiveType</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Primitive type '&quot; + <span class=SpellE>primitiveType.getQualifiedName</span>()</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ &quot;' imported.&quot;);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ &quot;' imported.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> <span
 class=SpellE>primitiveType</span>;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we load the model library <img border=0 width=24 height=14 id="_x0000_i1049"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>containing the UML primitive types (<span
+style='mso-spacerun:yes'>�</span>containing the UML primitive types (<span
 style='font-family:"Courier New"'>Boolean</span>, <span style='font-family:
 "Courier New"'>Integer</span>, <span style='font-family:"Courier New"'>String</span>,
 and <span class=SpellE><span style='font-family:"Courier New"'>UnlimitedNatural</span></span>)
@@ -727,28 +729,28 @@
 interface. Next, we retrieve the desired (owned) primitive type from the model
 by name <img border=0 width=24 height=14 id="_x0000_i1050"
 src="../../../../images/tag_2.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>using one of the convenience methods defined
+style='mso-spacerun:yes'>�</span>using one of the convenience methods defined
 in the UML2 API. Finally, we invoke another convenience method <img border=0
 width=24 height=14 id="_x0000_i1051" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>to create the element
+align=CENTER><span style='mso-spacerun:yes'>�</span>to create the element
 import relationship between the package and the element (with default public
 visibility), notify the user, and return the primitive type.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1052" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The UML resources plug-in (<span
+style='mso-spacerun:yes'>�</span>The UML resources plug-in (<span
 style='font-family:"Courier New"'>org.eclipse.uml2.uml.resources</span>)
 provides several model libraries (which by convention have a <code>.<span
 class=SpellE>library.uml</span></code> file extension) that contain commonly
 used primitive types, such as those defined by Java and <span class=SpellE>Ecore</span>
-(in addition to those defined by UML™ itself). These libraries can be accessed
+(in addition to those defined by UML� itself). These libraries can be accessed
 using <span class=SpellE>URIs</span> defined on the <span class=SpellE><span
 style='font-family:"Courier New"'>UMLResource</span></span> interface, as shown
 above.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=63 height=14 id="_x0000_i1053" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>In UML2, a method of the form <code>get&lt;feature
+style='mso-spacerun:yes'>�</span>In UML2, a method of the form <code>get&lt;feature
 name<span class=GramE>&gt;(</span>String)</code> exists for every feature that
 can contain or reference named elements. In this case, the package has a
 feature (<span class=SpellE><code>ownedType</code></span>) that can contain
@@ -759,19 +761,19 @@
 return the first one that it finds that has the specified (unqualified) name.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could import the primitive
-type named ‘Boolean’ into profile ‘<span class=SpellE>ecore</span>’ as follows:</p>
+let�s see this method in action. For example, we could import the primitive
+type named �Boolean� into profile �<span class=SpellE>ecore</span>� as follows:</p>
 
-<pre style='margin-left:8.5pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:8.5pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE>PrimitiveType</span> <span class=SpellE>booleanPrimitiveType</span> = <span
 class=SpellE><span class=GramE>importPrimitiveType</span></span><span
 class=GramE>(</span><span class=SpellE>ecoreProfile</span>,</pre><pre
-style='margin-left:8.5pt'><span style='mso-tab-count:3'>                    </span>&quot;Boolean&quot;);</pre>
+style='margin-left:8.5pt'><span style='mso-tab-count:3'>������������������� </span>&quot;Boolean&quot;);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1054" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically import the
-other required primitive type (i.e. ‘String’) into the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>Write code to programmatically import the
+other required primitive type (i.e. �String�) into the <span class=SpellE>Ecore</span>
 profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -792,13 +794,13 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “<span class=SpellE>VisibilityKind</span>”) for the <b>Name</b>
+Enter a value (i.e. �<span class=SpellE>VisibilityKind</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1055" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the other enumeration (i.e. “<span
-class=SpellE>FeatureKind</span>”) for the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>Create the other enumeration (i.e. �<span
+class=SpellE>FeatureKind</span>�) for the <span class=SpellE>Ecore</span>
 profile using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
@@ -810,51 +812,51 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=832 height=541
 src="article_files/image010.jpg" v:shapes="_x0000_i1132"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 (from the <span style='font-family:"Courier New"'>GettingStartedWithUML2</span>
 class) shows a method that programmatically creates and returns an enumeration
 with a specified name in a specified package.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Enumeration <span class=SpellE>createEnumeration</span>(</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>org.eclipse.uml2.uml.Package package_, String name) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1056"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Enumeration <span class=SpellE>enumeration</span> = (Enumeration) package_</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+2'>�������� </span>Enumeration <span class=SpellE>enumeration</span> = (Enumeration) package_</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createOwnedEnumeraton</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Enumeration '&quot; + <span class=SpellE>enumeration.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> enumeration;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> enumeration;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedEnumeration</code></span></span><span
 class=GramE><code>(</code></span><code>String)</code> convenience factory
 method <img border=0 width=24 height=13 id="_x0000_i1057"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the package to create a primitive type with
+style='mso-spacerun:yes'>�</span>to ask the package to create a primitive type with
 the specified name as one of its packaged elements.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an enumeration
-named ‘<span class=SpellE>VisibilityKind</span>’ in profile ‘<span
-class=SpellE>ecore</span>’ as follows:</p>
+let�s see this method in action. For example, we could create an enumeration
+named �<span class=SpellE>VisibilityKind</span>� in profile �<span
+class=SpellE>ecore</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Enumeration <span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Enumeration <span
 class=SpellE>visibilityKindEnumeration</span> = GettingStartedWithUML2</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createEnumeration</span></span><span
 class=GramE>(</span><span class=SpellE>ecoreProfile</span>, &quot;<span
 class=SpellE>VisibilityKind</span>&quot;);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1058" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-other enumeration (i.e. ‘<span class=SpellE>FeatureKind</span>’) for the <span
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+other enumeration (i.e. �<span class=SpellE>FeatureKind</span>�) for the <span
 class=SpellE>Ecore</span> profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -874,19 +876,19 @@
 Literal</b> option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “Unspecified”) for the <b>Name</b> property in the <b>Properties</b>
+Enter a value (i.e. �Unspecified�) for the <b>Name</b> property in the <b>Properties</b>
 view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1059" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining enumeration literals for
-the <span class=SpellE>Ecore</span> profile (i.e. “None”, “<span class=SpellE>ReadOnly</span>”,
-“<span class=SpellE>ReadWrite</span>”, “<span class=SpellE>ReadOnlyUnsettable</span>”,
-and “<span class=SpellE>ReadWriteUnsettable</span>” for <b style='mso-bidi-font-weight:
+style='mso-spacerun:yes'>�</span>Create the remaining enumeration literals for
+the <span class=SpellE>Ecore</span> profile (i.e. �None�, �<span class=SpellE>ReadOnly</span>�,
+�<span class=SpellE>ReadWrite</span>�, �<span class=SpellE>ReadOnlyUnsettable</span>�,
+and �<span class=SpellE>ReadWriteUnsettable</span>� for <b style='mso-bidi-font-weight:
 normal'>&lt;<span style='mso-bidi-font-weight:bold'>Enumeration&gt; <span
-class=SpellE>VisibilityKind</span></span></b>; “Unspecified”, “Simple”,
-“Attribute”, “Element”, “<span class=SpellE>AttributeWildcard</span>”, “<span
-class=SpellE>ElementWildcard</span>”, and “Group” for <b style='mso-bidi-font-weight:
+class=SpellE>VisibilityKind</span></span></b>; �Unspecified�, �Simple�,
+�Attribute�, �Element�, �<span class=SpellE>AttributeWildcard</span>�, �<span
+class=SpellE>ElementWildcard</span>�, and �Group� for <b style='mso-bidi-font-weight:
 normal'>&lt;<span style='mso-bidi-font-weight:bold'>Enumeration <span
 class=SpellE>FeatureKind</span>&gt;</span></b>) using the UML editor.</p>
 
@@ -899,60 +901,60 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=810
 src="article_files/image012.jpg" v:shapes="_x0000_i1133"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 (from the <span style='font-family:"Courier New"'>GettingStartedWithUML2</span>
 class) shows a method that programmatically creates and returns an enumeration
 literal with a specified name in a specified enumeration.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static <span class=SpellE>EnumerationLiteral</span> <span
 class=SpellE>createEnumerationLiteral</span>(</pre><pre style='margin-left:
-9.0pt'><span style='mso-tab-count:3'>                    </span>Enumeration <span
+9.0pt'><span style='mso-tab-count:3'>������������������� </span>Enumeration <span
 class=SpellE>enumeration</span>, String name) {</pre><pre style='margin-left:
 9.0pt'><img border=0 width=24 height=13 id="_x0000_i1060"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE>EnumerationLiteral</span> <span
+2'>�������� </span><span class=SpellE>EnumerationLiteral</span> <span
 class=SpellE>enumerationLiteral</span> = enumeration</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>createOwnedLiteral</span></span><span
 class=GramE>(</span>name);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;Enumeration literal '&quot; + <span class=SpellE>enumerationLiteral.getQualifiedName</span>()</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ &quot;' created.&quot;);</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> <span
 class=SpellE>enumerationLiteral</span>;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedLiteral</code></span></span><span
 class=GramE><code>(</code></span><code>String)</code> convenience factory
 method <img border=0 width=24 height=13 id="_x0000_i1061"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the enumeration to create an
+style='mso-spacerun:yes'>�</span>to ask the enumeration to create an
 enumeration literal with the specified name as one of its owned literals.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an enumeration
-literal named ‘Unspecified’ in enumeration ‘<span class=SpellE>VisibilityKind</span>’
+let�s see this method in action. For example, we could create an enumeration
+literal named �Unspecified� in enumeration �<span class=SpellE>VisibilityKind</span>�
 as follows:</p>
 
-<pre style='margin-left:8.5pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:8.5pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>GettingStartedWithUML2.createEnumerationLiteral(</span></pre><pre
-style='margin-left:8.5pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:8.5pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>visibilityKindEnumeration</span></span>, &quot;Unspecified&quot;);<span
-style='mso-tab-count:2'>            </span></pre>
+style='mso-tab-count:2'>����������� </span></pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1062" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-remaining enumeration literals (i.e. ‘None’, ‘<span class=SpellE>ReadOnly</span>’,
-‘<span class=SpellE>ReadWrite</span>’, ‘<span class=SpellE>ReadOnlyUnsettable</span>’,
-and ‘<span class=SpellE>ReadWriteUnsettable</span>’ in enumeration ‘<span
-class=SpellE>VisibilityKind</span>’; ‘Unspecified’, ‘Simple’, ‘Attribute’,
-‘Element’, ‘<span class=SpellE>AttributeWildcard</span>’, ‘<span class=SpellE>ElementWildcard</span>’,
-and ‘Group’ in enumeration ‘<span class=SpellE>FeatureKind</span>’) for the <span
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+remaining enumeration literals (i.e. �None�, �<span class=SpellE>ReadOnly</span>�,
+�<span class=SpellE>ReadWrite</span>�, �<span class=SpellE>ReadOnlyUnsettable</span>�,
+and �<span class=SpellE>ReadWriteUnsettable</span>� in enumeration �<span
+class=SpellE>VisibilityKind</span>�; �Unspecified�, �Simple�, �Attribute�,
+�Element�, �<span class=SpellE>AttributeWildcard</span>�, �<span class=SpellE>ElementWildcard</span>�,
+and �Group� in enumeration �<span class=SpellE>FeatureKind</span>�) for the <span
 class=SpellE>Ecore</span> profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -976,7 +978,7 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. “<span class=SpellE>EStructuralFeature</span>”) for the <b>Name</b>
+Enter a value (i.e. �<span class=SpellE>EStructuralFeature</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -986,9 +988,9 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1063" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining stereotypes for the <span
-class=SpellE>Ecore</span> profile (i.e. “<span class=SpellE>EAttribute</span>”
-and “<span class=SpellE>EReference</span>”) using the UML editor.</p>
+style='mso-spacerun:yes'>�</span>Create the remaining stereotypes for the <span
+class=SpellE>Ecore</span> profile (i.e. �<span class=SpellE>EAttribute</span>�
+and �<span class=SpellE>EReference</span>�) using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
 this point your workspace should look something like this:</p>
@@ -999,55 +1001,55 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=810
 src="article_files/image014.jpg" v:shapes="_x0000_i1134"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns <span class=GramE>a(</span>n)
 (abstract) stereotype with a specified name in a specified profile.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Stereotype <span class=SpellE>createStereotype</span>(Profile <span
 class=SpellE>profile</span>, String name,</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>boolean</span></span> <span class=SpellE>isAbstract</span>) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=14 id="_x0000_i1064"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Stereotype <span class=SpellE>stereotype</span> = <span
+2'>�������� </span>Stereotype <span class=SpellE>stereotype</span> = <span
 class=SpellE><span class=GramE>profile.createOwnedStereotype</span></span><span
 class=GramE>(</span>name, <span class=SpellE>isAbstract</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Stereotype '&quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Stereotype '&quot; + <span
 class=SpellE>stereotype.getQualifiedName</span>() + &quot;' created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> stereotype;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> stereotype;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><span class=GramE><code>createOwnedStereotype</code></span></span><span
 class=GramE><code>(</code></span><code>String, <span class=SpellE>boolean</span>)</code>
 convenience factory method <img border=0 width=24 height=13 id="_x0000_i1065"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the profile to create a stereotype with
+style='mso-spacerun:yes'>�</span>to ask the profile to create a stereotype with
 the specified name as one of its owned members, and set the <span class=SpellE><code>isAbstract</code></span>
 attribute of the stereotype based on the specified <span class=SpellE><code>boolean</code></span>
 argument.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an abstract
-stereotype named ‘<span class=SpellE>EStructuralFeature</span>’ in profile ‘<span
-class=SpellE>ecore</span>’ as follows:</p>
+let�s see this method in action. For example, we could create an abstract
+stereotype named �<span class=SpellE>EStructuralFeature</span>� in profile �<span
+class=SpellE>ecore</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Stereotype <span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Stereotype <span
 class=SpellE>eStructuralFeatureStereotype</span> = <span class=SpellE><span
 class=GramE>createStereotype</span></span><span class=GramE>(</span></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>ecoreProfile</span></span>, &quot;<span
 class=SpellE>EStructuralFeature</span>&quot;, true);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1066" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-remaining (non-abstract) stereotypes (i.e. ‘<span class=SpellE>EAttribute</span>’
-and ‘<span class=SpellE>EReference</span>’) for the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+remaining (non-abstract) stereotypes (i.e. �<span class=SpellE>EAttribute</span>�
+and �<span class=SpellE>EReference</span>�) for the <span class=SpellE>Ecore</span>
 profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -1075,14 +1077,14 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1067" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the other generalization (i.e. between <span
+style='mso-spacerun:yes'>�</span>Create the other generalization (i.e. between <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>EReference</b></span> and <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>EStructuralFeature</b></span>)
 for the <span class=SpellE>Ecore</span> profile using the UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1068" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>Be sure to pick the stereotype (the first <span
+style='mso-spacerun:yes'>�</span>Be sure to pick the stereotype (the first <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>ecore::EStructuralFeature</b></span>
 item) and not the class (it should show up in <b style='mso-bidi-font-weight:
 normal'>Properties</b> view as <b style='mso-bidi-font-weight:normal'>&lt;Stereotype&gt;
@@ -1099,55 +1101,55 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=810
 src="article_files/image016.jpg" v:shapes="_x0000_i1135"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 (from the <span style='font-family:"Courier New"'>GettingStartedWithUML2</span>
 class) shows a method that programmatically creates and returns generalization
 between specified specific and general classifiers.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Generalization <span class=SpellE>createGeneralization</span>(</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>Classifier <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>Classifier <span
 class=SpellE>specificClassifier</span>, Classifier <span class=SpellE>generalClassifier</span>) {</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Generalization <span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Generalization <span
 class=SpellE>generalization</span> = <span class=SpellE>specificClassifier</span></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1069"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-3'>                 </span>.<span class=SpellE><span class=GramE>createGeneralization</span></span><span
+3'>���������������� </span>.<span class=SpellE><span class=GramE>createGeneralization</span></span><span
 class=GramE>(</span><span class=SpellE>generalClassifier</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Generalization &quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Generalization &quot; + <span
 class=SpellE>specificClassifier.getQualifiedName</span>() + &quot; -&gt;&gt; &quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>+ <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>+ <span
 class=SpellE><span class=GramE>generalClassifier.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot; created.&quot;);</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> generalization;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> generalization;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience factory method on the specific classifier that creates a
 generalization <img border=0 width=24 height=13 id="_x0000_i1070"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>as one of its children and sets the general
+style='mso-spacerun:yes'>�</span>as one of its children and sets the general
 classifier to the specified argument.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a generalization
-between specific stereotype ‘<span class=SpellE>EAttribute</span>’ and general
-stereotype ‘<span class=SpellE>EStructuralFeature</span>’ as follows:</p>
+let�s see this method in action. For example, we could create a generalization
+between specific stereotype �<span class=SpellE>EAttribute</span>� and general
+stereotype �<span class=SpellE>EStructuralFeature</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>GettingStartedWithUML2.createGeneralization(</span><span
 class=SpellE>eAttributeStereotype</span>,</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>eStructuralFeatureStereotype</span></span>);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1071" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-other generalization (i.e. between ‘<span class=SpellE>EReference</span>’ and ‘<span
-class=SpellE>EStructuralFeature</span>’) for the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+other generalization (i.e. between �<span class=SpellE>EReference</span>� and �<span
+class=SpellE>EStructuralFeature</span>�) for the <span class=SpellE>Ecore</span>
 profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -1169,7 +1171,7 @@
 option from the context menu.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
-Enter a value (i.e. &quot;<span class=SpellE>isTransient</span>”) for the <b>Name</b>
+Enter a value (i.e. &quot;<span class=SpellE>isTransient</span>�) for the <b>Name</b>
 property in the <b>Properties</b> view.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>4)
@@ -1191,40 +1193,40 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1072" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>Default values for properties (and parameters)
-are represented as value specifications (first-class objects) in UML™ 2.0. Here
+style='mso-spacerun:yes'>�</span>Default values for properties (and parameters)
+are represented as value specifications (first-class objects) in UML� 2.0. Here
 we have selected a literal Boolean (whose default value is <span
 style='font-family:"Courier New"'>false</span>) as the default value of our
 property since its type is <b style='mso-bidi-font-weight:normal'>Boolean</b>.
 If the type of the property were <b style='mso-bidi-font-weight:normal'>String</b>,
-we’d have used a literal string instead. Once a default value specification has
+we�d have used a literal string instead. Once a default value specification has
 been created, its value can alternatively be set with the owning property
 selected via the <b style='mso-bidi-font-weight:normal'>Default</b> property in
 the <b style='mso-bidi-font-weight:normal'>Properties</b> view.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1073" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the remaining stereotype properties for
-the <span class=SpellE>Ecore</span> profile (i.e. “<span class=SpellE>isUnsettable</span>”,
-“<span class=SpellE>isVolatile</span>”, “visibility”, “<span class=SpellE>xmlName</span>”,
-“<span class=SpellE>xmlNamespace</span>”, and “<span class=SpellE>xmlFeatureKind</span>”
+style='mso-spacerun:yes'>�</span>Create the remaining stereotype properties for
+the <span class=SpellE>Ecore</span> profile (i.e. �<span class=SpellE>isUnsettable</span>�,
+�<span class=SpellE>isVolatile</span>�, �visibility�, �<span class=SpellE>xmlName</span>�,
+�<span class=SpellE>xmlNamespace</span>�, and �<span class=SpellE>xmlFeatureKind</span>�
 for <b style='mso-bidi-font-weight:normal'>&lt;Stereotype&gt; <span
-class=SpellE>EStructuralFeature</span></b>; “<span class=SpellE>attributeName</span>”
-and “<span class=SpellE>isID</span>” for <b style='mso-bidi-font-weight:normal'>&lt;Stereotype&gt;
-<span class=SpellE>EAttribute</span></b>; “<span class=SpellE>referenceName</span>”
-and “<span class=SpellE>isResolveProxies</span>” for <b style='mso-bidi-font-weight:
+class=SpellE>EStructuralFeature</span></b>; �<span class=SpellE>attributeName</span>�
+and �<span class=SpellE>isID</span>� for <b style='mso-bidi-font-weight:normal'>&lt;Stereotype&gt;
+<span class=SpellE>EAttribute</span></b>; �<span class=SpellE>referenceName</span>�
+and �<span class=SpellE>isResolveProxies</span>� for <b style='mso-bidi-font-weight:
 normal'>&lt;Stereotype&gt; <span class=SpellE>EReference</span></b>) using the
 UML editor.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1074" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>Be sure to set the appropriate default value
+style='mso-spacerun:yes'>�</span>Be sure to set the appropriate default value
 for each stereotype property so that it is consistent with the corresponding <span
 class=SpellE>Ecore</span> property for Rose. In particular, the default value
-for the “<span class=SpellE>isResolveProxies</span>” should be a literal
+for the �<span class=SpellE>isResolveProxies</span>� should be a literal
 Boolean with a value of <b style='mso-bidi-font-weight:normal'>true</b> instead
 of the default (!) default value of <b style='mso-bidi-font-weight:normal'>false</b>.
-Note also that the types of the “visibility” and “<span class=SpellE>xmlFeatureKind</span>”
+Note also that the types of the �visibility� and �<span class=SpellE>xmlFeatureKind</span>�
 properties should be the enumerations we created earlier (i.e. <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>ecore::<span
 style='mso-bidi-font-weight:bold'>Visibility</span></b></span> and <span
@@ -1240,73 +1242,73 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=810
 src="article_files/image018.jpg" v:shapes="_x0000_i1136"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 (from the <span style='font-family:"Courier New"'>GettingStartedWithUML2</span>
 class) shows a method that programmatically creates and returns an attribute with
 a specified upper bound, lower bound, type, and name in a specified class.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Property <span class=SpellE>createAttribute</span>(org.eclipse.uml2.uml.Class class_,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>String name, Type <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>String name, Type <span
 class=SpellE>type</span>, <span class=SpellE>int</span> <span class=SpellE>lowerBound</span>, <span
 class=SpellE>int</span> <span class=SpellE>upperBound</span>) {</pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1075"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Property attribute = <span class=SpellE>class_.<span
+2'>�������� </span>Property attribute = <span class=SpellE>class_.<span
 class=GramE>createOwnedAttribute</span></span><span class=GramE>(</span>name, type,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>lowerBound</span></span>, <span class=SpellE>upperBound</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE>StringBuffer</span> <span
+style='mso-tab-count:2'>����������� </span><span class=SpellE>StringBuffer</span> <span
 class=SpellE>sb</span> = new <span class=SpellE><span class=GramE>StringBuffer</span></span><span
 class=GramE>(</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;Attribute '&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>attribute.getQualifiedName</span>());</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;' : &quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>type.getQualifiedName</span>());</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; [&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>lowerBound</span>);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;..&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>sb.append</span></span><span class=GramE>(</span><span
 class=SpellE>LiteralUnlimitedNatural.UNLIMITED</span> == <span class=SpellE>upperBound</span></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? &quot;*&quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: <span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? &quot;*&quot;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: <span
 class=SpellE><span class=GramE>String.valueOf</span></span><span class=GramE>(</span><span
 class=SpellE>upperBound</span>));</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot;]&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=SpellE><span
+style='mso-tab-count:2'>����������� </span><span class=SpellE><span
 class=GramE>sb.append</span></span><span class=GramE>(</span>&quot; created.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span><span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span><span
 class=SpellE>sb.toString</span>());</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>return</span> attribute;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call the <span class=SpellE><code>createOwnedAttribute</code></span><code>(String,
 Type, <span class=SpellE>int</span>, <span class=SpellE>int</span>)</code>
 convenience factory method <img border=0 width=24 height=13 id="_x0000_i1076"
 src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to ask the class to create a property as one
+style='mso-spacerun:yes'>�</span>to ask the class to create a property as one
 of its owned attributes, set the type of the attribute to the specified type,
 and set the lower and upper bounds of the attribute (the factory method creates
 a literal integer and literal unlimited natural, respectively, and sets its
@@ -1314,34 +1316,34 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1077" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>LiteralUnlimitedNatural.UNLIMITED</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>LiteralUnlimitedNatural.UNLIMITED</code></span>
 constant represents the unlimited value for upper bounds (-1), as it does in
 EMF.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create an attribute with
-multiplicity 0<span class=GramE>..1</span> of type ‘<span class=SpellE>UMLPrimitiveTypes::Boolean</span>’
-named ‘<span class=SpellE>isTransient</span>’ in stereotype ‘<span
-class=SpellE>EStructuralFeature</span>’ as follows:</p>
+let�s see this method in action. For example, we could create an attribute with
+multiplicity 0<span class=GramE>..1</span> of type �<span class=SpellE>UMLPrimitiveTypes::Boolean</span>�
+named �<span class=SpellE>isTransient</span>� in stereotype �<span
+class=SpellE>EStructuralFeature</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>Property <span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>Property <span
 class=SpellE>isTransientProperty</span> = <span class=GramE>GettingStartedWithUML2.createAttribute(</span></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=SpellE><span class=GramE>eStructuralFeatureStereotype</span></span>, &quot;<span
 class=SpellE>isTransient</span>&quot;, <span class=SpellE>booleanPrimitiveType</span>,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>0, 1);</pre>
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>0, 1);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1078" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-remaining stereotype properties (i.e. ‘<span class=SpellE>isUnsettable</span>’,
-‘<span class=SpellE>isVolatile</span>’, ‘visibility’, ‘<span class=SpellE>xmlName</span>’,
-‘<span class=SpellE>xmlNamespace</span>’, and ‘<span class=SpellE>xmlFeatureKind</span>’
-in stereotype ‘<span class=SpellE>EStructuralFeature</span>’; ‘<span
-class=SpellE>attributeName</span>’ and ‘<span class=SpellE>isID</span>’ in
-stereotype ‘<span class=SpellE>EAttribute</span>’; ‘<span class=SpellE>referenceName</span>’
-and ‘<span class=SpellE>isResolveProxies</span>’ in stereotype ‘<span
-class=SpellE>EReference</span>’) for the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+remaining stereotype properties (i.e. �<span class=SpellE>isUnsettable</span>�,
+�<span class=SpellE>isVolatile</span>�, �visibility�, �<span class=SpellE>xmlName</span>�,
+�<span class=SpellE>xmlNamespace</span>�, and �<span class=SpellE>xmlFeatureKind</span>�
+in stereotype �<span class=SpellE>EStructuralFeature</span>�; �<span
+class=SpellE>attributeName</span>� and �<span class=SpellE>isID</span>� in
+stereotype �<span class=SpellE>EAttribute</span>�; �<span class=SpellE>referenceName</span>�
+and �<span class=SpellE>isResolveProxies</span>� in stereotype �<span
+class=SpellE>EReference</span>�) for the <span class=SpellE>Ecore</span>
 profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Referencing
@@ -1365,7 +1367,7 @@
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
 Select the <b style='mso-bidi-font-weight:normal'>UML Editor &gt; Profile &gt;
-Reference <span class=SpellE>Metaclass</span>…</b> menu item.</p>
+Reference <span class=SpellE>Metaclass</span>�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Choose a <span class=SpellE>metaclass</span> (i.e. <span class=SpellE><b
@@ -1382,61 +1384,61 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=810
 src="article_files/image020.jpg" v:shapes="_x0000_i1137"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically references the <span class=SpellE>metaclass</span>
 with a specified name in the UML <span class=SpellE>metamodel</span> from a specified
 profile and returns it.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static org.eclipse.uml2.uml.Class <span
 class=SpellE>referenceMetaclass</span>(Profile <span class=SpellE>profile</span>,</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 lang=IT style='mso-ansi-language:IT'>String name) {<o:p></o:p></span></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1079"
 src="../../../../images/tag_1.gif" align=CENTER><span lang=IT style='mso-ansi-language:
-IT'><span style='mso-tab-count:2'>         </span>Model umlMetamodel = (Model) load(URI<o:p></o:p></span></pre><pre
+IT'><span style='mso-tab-count:2'>�������� </span>Model umlMetamodel = (Model) load(URI<o:p></o:p></span></pre><pre
 style='margin-left:9.0pt'><span lang=IT style='mso-ansi-language:IT'><span
-style='mso-tab-count:3'>                    </span>.createURI(UML2Resource.UML2_METAMODEL_URI));<o:p></o:p></span></pre><pre
+style='mso-tab-count:3'>������������������� </span>.createURI(UML2Resource.UML2_METAMODEL_URI));<o:p></o:p></span></pre><pre
 style='margin-left:9.0pt'><span lang=IT style='mso-ansi-language:IT'><o:p>&nbsp;</o:p></span></pre><pre
 style='margin-left:9.0pt'><img border=0 width=24 height=13 id="_x0000_i1080"
 src="../../../../images/tag_2.gif" align=CENTER><span lang=IT style='mso-ansi-language:
-IT'><span style='mso-tab-count:2'>         </span>org.eclipse.uml2.Class metaclass = (org.eclipse.uml2.uml.Class) umlMetamodel<o:p></o:p></span></pre><pre
+IT'><span style='mso-tab-count:2'>�������� </span>org.eclipse.uml2.Class metaclass = (org.eclipse.uml2.uml.Class) umlMetamodel<o:p></o:p></span></pre><pre
 style='margin-left:9.0pt'><span lang=IT style='mso-ansi-language:IT'><span
-style='mso-tab-count:3'>                    </span></span>.<span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span></span>.<span class=SpellE><span
 class=GramE>getOwnedType</span></span><span class=GramE>(</span>name);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=13 id="_x0000_i1081" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE><span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE><span
 class=GramE>profile.createMetaclassReference</span></span><span class=GramE>(</span><span
 class=SpellE>metaclass</span>);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>out(</span>&quot;<span class=SpellE>Metaclass</span> '&quot; + <span
 class=SpellE>metaclass.getQualifiedName</span>() + &quot;' referenced.&quot;);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> <span
 class=SpellE>metaclass</span>;</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we load the <span class=SpellE>metamodel</span> <img border=0 width=24
 height=14 id="_x0000_i1082" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>containing the UML <span class=SpellE>metaclasses</span>
+style='mso-spacerun:yes'>�</span>containing the UML <span class=SpellE>metaclasses</span>
 using a utility method (described later) and a URI defined on the <span
 class=SpellE><span style='font-family:"Courier New"'>UMLResource</span></span>
 interface. Next, we retrieve the desired (owned) <span class=SpellE>metaclass</span>
 from the (meta<span class=GramE>)model</span> by name <img border=0 width=24
 height=14 id="_x0000_i1083" src="../../../../images/tag_2.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>using the convenience method. Finally, we
+style='mso-spacerun:yes'>�</span>using the convenience method. Finally, we
 invoke another convenience method <img border=0 width=24 height=14
 id="_x0000_i1084" src="../../../../images/tag_3.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to create the element import relationship
+style='mso-spacerun:yes'>�</span>to create the element import relationship
 between the profile and the <span class=SpellE>metaclass</span>, notify the
 user, and return the <span class=SpellE>metaclass</span>.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1085" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The UML resources plug-in (<span
+style='mso-spacerun:yes'>�</span>The UML resources plug-in (<span
 style='font-family:"Courier New"'>org.eclipse.uml2.uml.resources</span>)
 provides two <span class=SpellE>metamodels</span> (which by convention have a <code>.<span
 class=SpellE>metamodel.uml</span></code> file extension), UML2 and <span
@@ -1446,14 +1448,14 @@
 interface, as shown above.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could reference the <span
-class=SpellE>metaclass</span> named ‘Property’ from profile ‘<span
-class=SpellE>ecore</span>’ as follows:</p>
+let�s see this method in action. For example, we could reference the <span
+class=SpellE>metaclass</span> named �Property� from profile �<span
+class=SpellE>ecore</span>� as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>org.eclipse.uml2.uml.Class</span> <span class=SpellE>propertyMetaclass</span> = <span
 class=SpellE>referenceMetaclass</span>(</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>ecoreProfile</span></span>, <span class=SpellE>UMLPackage.Literals.PROPERTY.getName</span>());</pre>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Creating
@@ -1477,7 +1479,7 @@
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
 Select the <b style='mso-bidi-font-weight:normal'>UML Editor &gt; Stereotype
-&gt; Create Extension…</b> menu item.</p>
+&gt; Create Extension�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Choose a <span class=SpellE>metaclass</span> (i.e. <span class=SpellE><b>uml::</b><b
@@ -1487,7 +1489,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1086" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Create the other extension (i.e. between <span
+style='mso-spacerun:yes'>�</span>Create the other extension (i.e. between <span
 class=SpellE><b>uml::</b><b style='mso-bidi-font-weight:normal'>Property</b></span>
 and <b style='mso-bidi-font-weight:normal'>&lt;Stereotype&gt; <span
 class=SpellE>EReference</span></b>) for the <span class=SpellE>Ecore</span>
@@ -1504,83 +1506,83 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1087" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>You’ll notice that a number of new elements
-have appeared in the UML editor. In particular, you’ll see a new stereotype
+style='mso-spacerun:yes'>�</span>You�ll notice that a number of new elements
+have appeared in the UML editor. In particular, you�ll see a new stereotype
 property with a name of the form <span style='font-family:"Courier New"'>base_&lt;<span
 class=SpellE>metaclass</span> name&gt;</span>, an extension with a name of the
 form <span style='font-family:"Courier New"'>&lt;<span class=SpellE>metaclass</span>
 name&gt;_&lt;stereotype name&gt;</span>, and an extension end with a name of
 the form <span style='font-family:"Courier New"'>extension_&lt;stereotype
-name&gt;</span>. It’s important that these elements <b style='mso-bidi-font-weight:
+name&gt;</span>. It�s important that these elements <b style='mso-bidi-font-weight:
 normal'>not</b> be modified, since the UML2 profile mechanism depends on these
 constructs.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically creates and returns <span class=GramE>a(</span>n)
 (required) extension between a specified <span class=SpellE>metaclass</span>
 and a specified stereotype.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static Extension <span class=SpellE>createExtension</span>(</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=GramE>org.eclipse.uml2.uml.Class</span> <span class=SpellE>metaclass</span>, Stereotype <span
 class=SpellE>stereotype</span>,</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:3'>                    </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������� </span><span class=SpellE><span
 class=GramE>boolean</span></span> required) {</pre><pre style='margin-left:
 9.0pt'><img border=0 width=24 height=13 id="_x0000_i1088"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span>Extension <span class=SpellE>extension</span> = <span
+2'>�������� </span>Extension <span class=SpellE>extension</span> = <span
 class=SpellE><span class=GramE>stereotype.createExtension</span></span><span
 class=GramE>(</span><span class=SpellE>metaclass</span>, required);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>(required</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>? &quot;Required extension '&quot;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>: &quot;Extension '&quot;) + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>(required</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>? &quot;Required extension '&quot;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>: &quot;Extension '&quot;) + <span
 class=SpellE><span class=GramE>extension.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot;' created.&quot;);</pre><pre style='margin-left:
 9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>return</span> extension;</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:2'>����������� </span><span class=GramE>return</span> extension;</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the stereotype that creates an extension (and
 its ends) between it and a <span class=SpellE>metaclass</span> <img border=0
 width=24 height=13 id="_x0000_i1089" src="../../../../images/tag_1.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>as one of its siblings
+align=CENTER><span style='mso-spacerun:yes'>�</span>as one of its siblings
 (i.e. as a child of its profile namespace). Behind the scenes, the stereotype
 also creates the ends of the extension, resulting in a new property on the
 stereotype (with a special name) and an extension end owned by the extension (again,
 with a special name).</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could create a non-required
-extension between <span class=SpellE>metaclass</span> ‘Property’ and stereotype
-‘<span class=SpellE>EAttribute</span>’ in profile ‘<span class=SpellE>ecore</span>’
+let�s see this method in action. For example, we could create a non-required
+extension between <span class=SpellE>metaclass</span> �Property� and stereotype
+�<span class=SpellE>EAttribute</span>� in profile �<span class=SpellE>ecore</span>�
 as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>createExtension</span></span><span class=GramE>(</span><span
 class=SpellE>propertyMetaclass</span>, <span class=SpellE>eAttributeStereotype</span>, false);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1090" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically create the
-other extension (i.e. between <span class=SpellE>metaclass</span> ‘Property’
-and stereotype ‘<span class=SpellE>EReference</span>’) for the <span
+style='mso-spacerun:yes'>�</span>Write code to programmatically create the
+other extension (i.e. between <span class=SpellE>metaclass</span> �Property�
+and stereotype �<span class=SpellE>EReference</span>�) for the <span
 class=SpellE>Ecore</span> profile.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Defining
 Profiles</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>There.
-We’re done creating (a scaled down version of) the <span class=SpellE>Ecore</span>
-<span class=GramE>profile,</span> and we’re ready to start using it. But before
-we can, there’s one final thing we need to do – <i style='mso-bidi-font-style:
+We�re done creating (a scaled down version of) the <span class=SpellE>Ecore</span>
+<span class=GramE>profile,</span> and we�re ready to start using it. But before
+we can, there�s one final thing we need to do � <i style='mso-bidi-font-style:
 normal'>define</i> it. Since a profile effectively represents an augmentation
 of a reference <span class=SpellE>metamodel</span> (UML), in order for the
-extensions we’ve defined to appear as though they’re part of the UML <span
-class=SpellE>metamodel</span>, they need to be “defined” at the meta-<span
+extensions we�ve defined to appear as though they�re part of the UML <span
+class=SpellE>metamodel</span>, they need to be �defined� at the meta-<span
 class=SpellE>metamodel</span> (i.e. <span class=SpellE>Ecore</span>) level. The
 implementation of profile support in UML2 does this by converting the contents
 of the profile to an equivalent <span class=SpellE>Ecore</span> representation
@@ -1611,41 +1613,41 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1091" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>You’ll notice that an annotation with source <b
+style='mso-spacerun:yes'>�</span>You�ll notice that an annotation with source <b
 style='mso-bidi-font-weight:normal'>http://www.eclipse.org/uml2/2.0.0/UML</b>
 has been attached to the profile. It contains the generated <span class=SpellE>Ecore</span>
 representation (an <span class=SpellE>Ecore</span> package with classes,
 attributes, <span class=SpellE>enums</span>, etc.) of the profile. As with
-extensions, it’s important that this annotation (and its contents) <b
+extensions, it�s important that this annotation (and its contents) <b
 style='mso-bidi-font-weight:normal'>not</b> be modified, since the UML2 profile
 mechanism depends on these constructs.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically defines a specified profile.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void <span class=SpellE>defineProfile</span>(Profile <span
 class=SpellE>profile</span>) {</pre><pre style='margin-left:9.0pt'><img
 border=0 width=24 height=13 id="_x0000_i1092" src="../../../../images/tag_1.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span><span class=SpellE><span
+align=CENTER><span style='mso-tab-count:2'>�������� </span><span class=SpellE><span
 class=GramE>profile.define</span></span><span class=GramE>(</span>);</pre><pre
 style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
+style='mso-tab-count:2'>����������� </span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
 class=SpellE>profile.getQualifiedName</span>() + &quot;' defined.&quot;);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the profile <img border=0 width=24 height=13
 id="_x0000_i1093" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>that generates the <span class=SpellE>Ecore</span>
+style='mso-spacerun:yes'>�</span>that generates the <span class=SpellE>Ecore</span>
 representation of the profile and increments its version.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could define the ‘<span
-class=SpellE>ecore</span>’ profile as follows:</p>
+let�s see this method in action. For example, we could define the �<span
+class=SpellE>ecore</span>� profile as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=SpellE><span class=GramE>defineProfile</span></span><span class=GramE>(</span><span
 class=SpellE>ecoreProfile</span>);</pre>
 
@@ -1653,7 +1655,7 @@
 Profiles</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Now
-that we’ve spent all this time creating and defining a profile, we’d better
+that we�ve spent all this time creating and defining a profile, we�d better
 save our work. When we created our profile using the UML model wizard, a UML
 resource was created for us, so now all that needs to be done is to serialize
 the contents of our profile as XMI to a file on disk (i.e. <span class=SpellE><code>Ecore.profile.uml</code></span>).
@@ -1662,67 +1664,67 @@
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>1)
 Select the <b>File &gt; Save</b> menu item.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>It’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>It�s
 that simple. Programmatically, we have a bit more work to do because so far,
-we’ve been creating our profile in a vacuum, i.e. without a containing
+we�ve been creating our profile in a vacuum, i.e. without a containing
 resource. The code snippet below shows a method that saves a specified package
 to a resource with a specified URI.</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void save(org.eclipse.uml2.uml.Package package_, URI <span
 class=SpellE>uri</span>) {</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=13 id="_x0000_i1094" src="../../../../images/tag_1.gif"
-align=CENTER><span style='mso-tab-count:2'>         </span>Resource <span
+align=CENTER><span style='mso-tab-count:2'>�������� </span>Resource <span
 class=SpellE>resource</span> = <span class=SpellE>RESOURCE_<span class=GramE>SET.createResource</span></span><span
 class=GramE>(</span><span class=SpellE>uri</span>);</pre><pre style='margin-left:
 9.0pt'><img border=0 width=24 height=13 id="_x0000_i1095"
 src="../../../../images/tag_2.gif" align=CENTER><span style='mso-tab-count:
-2'>         </span><span class=SpellE><span class=GramE>resource.getContents</span></span><span
+2'>�������� </span><span class=SpellE><span class=GramE>resource.getContents</span></span><span
 class=GramE>(</span>).add(package_);</pre><pre style='margin-left:9.0pt'><o:p>&nbsp;</o:p></pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>try</span> {</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=13 id="_x0000_i1096" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-tab-count:3'>                 </span><span
+align=CENTER><span style='mso-tab-count:3'>���������������� </span><span
 class=SpellE><span class=GramE>resource.save</span></span><span class=GramE>(</span>null);</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span><span
 class=GramE>out(</span>&quot;Done.&quot;);</pre><pre style='margin-left:9.0pt'><span
-style='mso-tab-count:2'>            </span>} catch (<span class=SpellE>IOException</span> <span
+style='mso-tab-count:2'>����������� </span>} catch (<span class=SpellE>IOException</span> <span
 class=SpellE>ioe</span>) {</pre><pre style='margin-left:9.0pt'><img border=0
 width=24 height=13 id="_x0000_i1097" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-tab-count:3'>                 </span><span
+align=CENTER><span style='mso-tab-count:3'>���������������� </span><span
 class=GramE>err(</span><span class=SpellE>ioe.getMessage</span>());</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span>}</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:1'>     </span>}</pre>
+style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span>}</pre><pre
+style='margin-left:9.0pt'><span style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we use a statically initialized resource set <img border=0 width=24 height=13
 id="_x0000_i1098" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>to create a resource with the specified URI,
-add the package to the resource’s contents <img border=0 width=24 height=13
+style='mso-spacerun:yes'>�</span>to create a resource with the specified URI,
+add the package to the resource�s contents <img border=0 width=24 height=13
 id="_x0000_i1099" src="../../../../images/tag_2.gif" align=CENTER>, and ask the
 resource to save itself <img border=0 width=24 height=13 id="_x0000_i1100"
 src="../../../../images/tag_3.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>using the default options. If an exception
+style='mso-spacerun:yes'>�</span>using the default options. If an exception
 occurs, we notify the user <img border=0 width=24 height=13 id="_x0000_i1101"
 src="../../../../images/tag_4.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>via our handy utility method.</p>
+style='mso-spacerun:yes'>�</span>via our handy utility method.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could save the ‘<span
-class=SpellE>ecore</span>’ profile to a resource with URI ‘<span class=SpellE>Ecore.profile.uml</span>’
+let�s see this method in action. For example, we could save the �<span
+class=SpellE>ecore</span>� profile to a resource with URI �<span class=SpellE>Ecore.profile.uml</span>�
 (relative to a URI passed in as an argument) as follows:</p>
 
-<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>            </span><span
+<pre style='margin-left:9.0pt'><span style='mso-tab-count:2'>����������� </span><span
 class=GramE>save(</span><span class=SpellE>ecoreProfile</span>, <span
 class=SpellE>URI.createURI</span>(<span class=SpellE>args</span>[0]).<span
 class=SpellE>appendSegment</span>(&quot;<span class=SpellE>Ecore</span>&quot;)</pre><pre
-style='margin-left:9.0pt'><span style='mso-tab-count:3'>                    </span>.<span
+style='margin-left:9.0pt'><span style='mso-tab-count:3'>������������������� </span>.<span
 class=SpellE><span class=GramE>appendFileExtension</span></span><span
 class=GramE>(</span><span class=SpellE>UMLResource.PROFILE_FILE_EXTENSION</span>));</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1102" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>UMLResource.PROFILE_FILE_EXTENSION</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>UMLResource.PROFILE_FILE_EXTENSION</code></span>
 constant represents the file extension for UML2 profiles (<code>.<span
 class=SpellE>profile.uml</span></code>).</p>
 
@@ -1730,9 +1732,9 @@
 Models</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>In
-order to make use of our profile, we’ll need to open a model and load the
-profile. We’ll use the ExtendedPO2 model that was created in the “Getting
-Started with UML2” article (you’ll need to copy it into your project and
+order to make use of our profile, we�ll need to open a model and load the
+profile. We�ll use the ExtendedPO2 model that was created in the �Getting
+Started with UML2� article (you�ll need to copy it into your project and
 refresh the workspace first).</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>To
@@ -1744,19 +1746,19 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Behind
 the scenes, a resource is obtained from the right kind resource factory (based
-on the extension ‘<b style='mso-bidi-font-weight:normal'>.<span class=SpellE>uml</span></b>’)
+on the extension �<b style='mso-bidi-font-weight:normal'>.<span class=SpellE>uml</span></b>�)
 and loaded, and then a new UML editor is opened and populated with the
-resource’s contents.</p>
+resource�s contents.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>To
 load a profile (or any resource, actually) using the UML editor, follow these
 steps:</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>1)
-Select the <b>UML Editor &gt; Load Resource…</b> menu item.</p>
+Select the <b>UML Editor &gt; Load Resource�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
-Press the <b>Browse Workspace…</b> button.</p>
+Press the <b>Browse Workspace�</b> button.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Select a resource (i.e. <b>Introduction to UML2 Profiles/<span class=SpellE>Ecore.profile.uml</span></b>)
@@ -1778,37 +1780,37 @@
 we have a bit more work to do. The code snippet below shows a method that loads
 a package from a resource with a specified URI.</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:1'>   </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span><span
 class=GramE>protected</span> static org.eclipse.uml2.uml.Package load(URI <span
 class=SpellE>uri</span>) {</pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span>org.eclipse.uml2.uml.Package package_ = null;</pre><pre
+style='mso-tab-count:2'>���������� </span>org.eclipse.uml2.uml.Package package_ = null;</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span><span class=GramE>try</span> {</pre><pre
+style='mso-tab-count:2'>���������� </span><span class=GramE>try</span> {</pre><pre
 style='margin-left:.25in'><img border=0 width=24 height=13 id="_x0000_i1103"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-3'>                </span>Resource <span class=SpellE>resource</span> = <span
+3'>��������������� </span>Resource <span class=SpellE>resource</span> = <span
 class=SpellE>RESOURCE_<span class=GramE>SET.getResource</span></span><span
 class=GramE>(</span><span class=SpellE>uri</span>, true);</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><img
 border=0 width=24 height=13 id="_x0000_i1104" src="../../../../images/tag_2.gif"
-align=CENTER><span style='mso-tab-count:3'>                </span>package_ = (org.eclipse.uml2.uml.Package) <span
+align=CENTER><span style='mso-tab-count:3'>��������������� </span>package_ = (org.eclipse.uml2.uml.Package) <span
 class=SpellE><span class=GramE>EcoreUtil.getObjectByType</span></span><span
 class=GramE>(</span></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:4'>                          </span><span class=SpellE><span
+style='mso-tab-count:4'>������������������������� </span><span class=SpellE><span
 class=GramE>resource.getContents</span></span><span class=GramE>(</span>), <span
 class=SpellE>UMLPackage.Literals.PACKAGE</span>);</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:2'>           </span>} catch (<span
+.25in'><span style='mso-tab-count:2'>���������� </span>} catch (<span
 class=SpellE>WrappedException</span> we) {</pre><pre style='margin-left:.25in'><img
 border=0 width=24 height=13 id="_x0000_i1105" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-tab-count:3'>                </span><span
+align=CENTER><span style='mso-tab-count:3'>��������������� </span><span
 class=GramE>err(</span><span class=SpellE>we.getMessage</span>());</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:3'>                   </span><span
+style='margin-left:.25in'><span style='mso-tab-count:3'>������������������ </span><span
 class=SpellE><span class=GramE>System.exit</span></span><span class=GramE>(</span>1);</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:2'>           </span>}</pre><pre
+style='margin-left:.25in'><span style='mso-tab-count:2'>���������� </span>}</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><img
 border=0 width=24 height=13 id="_x0000_i1106" src="../../../../images/tag_4.gif"
-align=CENTER><span style='mso-tab-count:2'>        </span><span class=GramE>return</span> package_;</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:1'>   </span>}</pre>
+align=CENTER><span style='mso-tab-count:2'>������� </span><span class=GramE>return</span> package_;</pre><pre
+style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we obtain a resource with the specified URI from our statically initialized
@@ -1816,30 +1818,30 @@
 id="_x0000_i1107" src="../../../../images/tag_1.gif" align=CENTER>, asking that
 it be loaded on demand. Next, we use an EMF utility method <img border=0
 width=24 height=13 id="_x0000_i1108" src="../../../../images/tag_2.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>to obtain the first object
+align=CENTER><span style='mso-spacerun:yes'>�</span>to obtain the first object
 of type <span style='font-family:"Courier New"'>Package</span> from the
-resource’s contents. If an exception occurs, we notify the user <img border=0
+resource�s contents. If an exception occurs, we notify the user <img border=0
 width=24 height=13 id="_x0000_i1109" src="../../../../images/tag_3.gif"
-align=CENTER><span style='mso-spacerun:yes'> </span>via our handy utility
+align=CENTER><span style='mso-spacerun:yes'>�</span>via our handy utility
 method. Finally, if all is well, we return <img border=0 width=24 height=13
 id="_x0000_i1110" src="../../../../images/tag_4.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>the package.</p>
+style='mso-spacerun:yes'>�</span>the package.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1111" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>The <span class=SpellE><code>EcoreUtil</code></span>
+style='mso-spacerun:yes'>�</span>The <span class=SpellE><code>EcoreUtil</code></span>
 class (provided by EMF) defines a number of utilities that you may find quite
 useful when working with EMF-based resources.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could load the ‘epo2’ model
-from a resource with URI ‘ExtendedPO2.uml’ (relative to a URI passed in as an
+let�s see this method in action. For example, we could load the �epo2� model
+from a resource with URI �ExtendedPO2.uml� (relative to a URI passed in as an
 argument) as follows:</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:2'>           </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:2'>���������� </span><span
 lang=IT style='mso-ansi-language:IT'>Model epo2Model = (Model) load(URI.createURI(args[0]).appendSegment(<o:p></o:p></span></pre><pre
 style='margin-left:.25in'><span lang=IT style='mso-ansi-language:IT'><span
-style='mso-tab-count:3'>                   </span></span>&quot;ExtendedPO2&quot;).<span
+style='mso-tab-count:3'>������������������ </span></span>&quot;ExtendedPO2&quot;).<span
 class=SpellE><span class=GramE>appendFileExtension</span></span><span
 class=GramE>(</span><span class=SpellE>UMLResource.FILE_EXTENSION</span>));</pre>
 
@@ -1847,7 +1849,7 @@
 Profiles</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-our profile has been created, defined, and saved, and we’re ready to apply it to
+our profile has been created, defined, and saved, and we�re ready to apply it to
 our model. Applying a profile means that it is allowed (but not necessarily
 required) to apply the stereotypes that are defined in the profile to elements
 in the package. A profile application is a special type of package import that
@@ -1860,7 +1862,7 @@
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
 Select the <b style='mso-bidi-font-weight:normal'>UML Editor &gt; Package &gt;
-Apply Profile…</b> menu item.</p>
+Apply Profile�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Choose a profile (i.e. <span class=SpellE><b style='mso-bidi-font-weight:normal'>ecore</b></span>)<span
@@ -1869,7 +1871,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1112" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>Be sure to pick the profile we’ve created instead
+style='mso-spacerun:yes'>�</span>Be sure to pick the profile we�ve created instead
 of the built-in profile provided by the UML resources plug-in (i.e. <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>ecore</b></span>, not <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>Ecore</b></span>).</p>
@@ -1885,57 +1887,57 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1113" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>You’ll notice another annotation (with source <b
+style='mso-spacerun:yes'>�</span>You�ll notice another annotation (with source <b
 style='mso-bidi-font-weight:normal'>http://www.eclipse.org/uml2/2.0.0/UML</b>)
 has been attached, in this case to keep track of the <span class=SpellE>Ecore</span>
 representation for the definition of the profile that is currently applied to
-the package. Again, it’s important that this annotation <b style='mso-bidi-font-weight:
+the package. Again, it�s important that this annotation <b style='mso-bidi-font-weight:
 normal'>not</b> be modified, since the UML2 profile mechanism depends on this
 construct. Note that a newer definition of the profile can be applied using the
 same menu item, and a profile (along with all of its stereotypes) can be
 unapplied using the <b style='mso-bidi-font-weight:normal'>UML Editor &gt;
-Package &gt; <span class=SpellE>Unapply</span> Profile…</b> menu item.</p>
+Package &gt; <span class=SpellE>Unapply</span> Profile�</b> menu item.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically applies a specified profile to a specified
 package.</p>
 
-<pre style='margin-left:8.5pt'><span style='mso-tab-count:1'>     </span><span
+<pre style='margin-left:8.5pt'><span style='mso-tab-count:1'>���� </span><span
 class=GramE>protected</span> static void <span class=SpellE>applyProfile</span>(org.eclipse.uml2.uml.Package package_,</pre><pre
-style='margin-left:8.5pt'><span style='mso-tab-count:3'>                    </span><span
+style='margin-left:8.5pt'><span style='mso-tab-count:3'>������������������� </span><span
 lang=IT style='mso-ansi-language:IT'>Profile profile) {<o:p></o:p></span></pre><pre
 style='margin-left:8.5pt'><img border=0 width=24 height=13 id="_x0000_i1114"
 src="../../../../images/tag_1.gif" align=CENTER><span lang=IT style='mso-ansi-language:
-IT'><span style='mso-tab-count:2'>         </span>package_.applyProfile(profile);<o:p></o:p></span></pre><pre
+IT'><span style='mso-tab-count:2'>�������� </span>package_.applyProfile(profile);<o:p></o:p></span></pre><pre
 style='margin-left:8.5pt'><span lang=IT style='mso-ansi-language:IT'><o:p>&nbsp;</o:p></span></pre><pre
 style='margin-left:8.5pt'><span lang=IT style='mso-ansi-language:IT'><span
-style='mso-tab-count:2'>            </span></span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
+style='mso-tab-count:2'>����������� </span></span><span class=GramE>out(</span>&quot;Profile '&quot; + <span
 class=SpellE>profile.getQualifiedName</span>() + &quot;' applied to package '&quot;</pre><pre
-style='margin-left:8.5pt'><span style='mso-tab-count:3'>                    </span>+ <span
+style='margin-left:8.5pt'><span style='mso-tab-count:3'>������������������� </span>+ <span
 class=SpellE>package_.<span class=GramE>getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot;'.&quot;);</pre><pre style='margin-left:8.5pt'><span
-style='mso-tab-count:1'>     </span>}</pre>
+style='mso-tab-count:1'>���� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the package <img border=0 width=24 height=13
 id="_x0000_i1115" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>that creates a profile application on the
+style='mso-spacerun:yes'>�</span>that creates a profile application on the
 package and sets the profile as the imported profile.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could apply the ‘<span
-class=SpellE>ecore</span>’ profile to the ‘epo2’ model as follows:</p>
+let�s see this method in action. For example, we could apply the �<span
+class=SpellE>ecore</span>� profile to the �epo2� model as follows:</p>
 
-<pre><span style='mso-tab-count:2'>              </span><span class=SpellE><span
+<pre><span style='mso-tab-count:2'>������������� </span><span class=SpellE><span
 class=GramE>applyProfile</span></span><span class=GramE>(</span>epo2Model, <span
 class=SpellE>ecoreProfile</span>);</pre>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Applying
 Stereotypes</h3>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>We’re
-on the home stretch now… Once a profile has been applied to a package,
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>We�re
+on the home stretch now� Once a profile has been applied to a package,
 stereotypes defined in the profile can be applied to instances of the
 appropriate <span class=SpellE>metaclasses</span> (as per the defined
 extensions). When a stereotype is applied to an element, that element is
@@ -1952,7 +1954,7 @@
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>2)
 Select the <b style='mso-bidi-font-weight:normal'>UML Editor &gt; Element &gt;
-Apply Stereotype…</b> menu item.</p>
+Apply Stereotype�</b> menu item.</p>
 
 <p style='margin-left:27.5pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>3)
 Choose a stereotype (i.e. <span class=SpellE><b style='mso-bidi-font-weight:
@@ -1962,7 +1964,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1116" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Apply the appropriate stereotypes to other
+style='mso-spacerun:yes'>�</span>Apply the appropriate stereotypes to other
 properties (<b style='mso-bidi-font-weight:normal'>&lt;Property&gt; <span
 class=SpellE>shippedOrders</span> : <span class=SpellE>PurchaseOrder</span>
 [0..*]</b> in <b style='mso-bidi-font-weight:normal'>&lt;Class&gt; Supplier</b>;
@@ -1988,70 +1990,70 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=62 height=13 id="_x0000_i1117" src="../../../../images/tip.gif"><span
-style='mso-spacerun:yes'> </span>A stereotype (and its tagged values) can be
+style='mso-spacerun:yes'>�</span>A stereotype (and its tagged values) can be
 unapplied using the <b style='mso-bidi-font-weight:normal'>UML Editor &gt;
-Element &gt; <span class=SpellE>Unapply</span> Stereotype…</b> menu item.</p>
+Element &gt; <span class=SpellE>Unapply</span> Stereotype�</b> menu item.</p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below shows
 a method that programmatically applies a specified stereotype to a specified
 (named) element.</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:1'>   </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span><span
 class=GramE>protected</span> static void <span class=SpellE>applyStereotype</span>(<span
 class=SpellE>NamedElement</span> <span class=SpellE>namedElement</span>,</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:3'>                   </span>Stereotype <span
+style='margin-left:.25in'><span style='mso-tab-count:3'>������������������ </span>Stereotype <span
 class=SpellE>stereotype</span>) {</pre><pre style='margin-left:.25in'><img
 border=0 width=24 height=13 id="_x0000_i1118" src="../../../../images/tag_1.gif"
-align=CENTER><span style='mso-tab-count:2'>        </span><span class=SpellE><span
+align=CENTER><span style='mso-tab-count:2'>������� </span><span class=SpellE><span
 class=GramE>namedElement.applyStereotype</span></span><span class=GramE>(</span>stereotype);</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span><span class=GramE>out(</span>&quot;Stereotype '&quot; + <span
+style='mso-tab-count:2'>���������� </span><span class=GramE>out(</span>&quot;Stereotype '&quot; + <span
 class=SpellE>stereotype.getQualifiedName</span>()</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:3'>                   </span>+ &quot;' applied to element '&quot; + <span
+.25in'><span style='mso-tab-count:3'>������������������ </span>+ &quot;' applied to element '&quot; + <span
 class=SpellE><span class=GramE>namedElement.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot;'.&quot;);</pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:1'>   </span>}</pre>
+style='mso-tab-count:1'>�� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the element <img border=0 width=24 height=13
 id="_x0000_i1119" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>that creates an instance of the <span
+style='mso-spacerun:yes'>�</span>that creates an instance of the <span
 class=SpellE>Ecore</span> class representing the specified stereotype (using
 dynamic EMF) and attaches it to the element using an annotation.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could apply the ‘<span
-class=SpellE>EReference</span>’ stereotype to the ‘<span class=SpellE>pendingOrders</span>’
-property of the ‘Supplier’ class in the ‘epo2’ model as follows:</p>
+let�s see this method in action. For example, we could apply the �<span
+class=SpellE>EReference</span>� stereotype to the �<span class=SpellE>pendingOrders</span>�
+property of the �Supplier� class in the �epo2� model as follows:</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:2'>           </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:2'>���������� </span><span
 class=GramE>org.eclipse.uml2.uml.Class</span> <span class=SpellE>supplierClass</span> = (org.eclipse.uml2.uml.Class) epo2Model</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:3'>                   </span>.<span
+style='margin-left:.25in'><span style='mso-tab-count:3'>������������������ </span>.<span
 class=SpellE><span class=GramE>getOwnedType</span></span><span class=GramE>(</span>&quot;Supplier&quot;);</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span>Property <span class=SpellE>pendingOrdersProperty</span> = <span
+style='mso-tab-count:2'>���������� </span>Property <span class=SpellE>pendingOrdersProperty</span> = <span
 class=SpellE>supplierClass</span></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:3'>                   </span>.<span class=SpellE><span
+style='mso-tab-count:3'>������������������ </span>.<span class=SpellE><span
 class=GramE>getOwnedAttribute</span></span><span class=GramE>(</span>&quot;<span
 class=SpellE>pendingOrders</span>&quot;, null);</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:2'>           </span><span class=SpellE><span
+.25in'><span style='mso-tab-count:2'>���������� </span><span class=SpellE><span
 class=GramE>applyStereotype</span></span><span class=GramE>(</span><span
 class=SpellE>pendingOrdersProperty</span>, <span class=SpellE>eReferenceStereotype</span>);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1120" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically apply the
+style='mso-spacerun:yes'>�</span>Write code to programmatically apply the
 appropriate stereotypes to other properties (i.e.
-‘epo2::Supplier::shippedOrders’, ‘epo2::PurchaseOrder::totalAmount’,
-‘epo2::PurchaseOrder::previousOrder’, ‘epo2::PurchaseOrder::customer’, and
-‘epo2::Customer::orders’) in the ExtendedPO2 model.</p>
+�epo2::Supplier::shippedOrders�, �epo2::PurchaseOrder::totalAmount�,
+�epo2::PurchaseOrder::previousOrder�, �epo2::PurchaseOrder::customer�, and
+�epo2::Customer::orders�) in the ExtendedPO2 model.</p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Accessing
 Stereotype Property Values</h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>At
-long last, we’re ready to get and set values for the properties (tagged values)
+long last, we�re ready to get and set values for the properties (tagged values)
 defined in our extensions. To get and set the value for a stereotype property
 using the UML editor, follow these steps:</p>
 
@@ -2071,7 +2073,7 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1121" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Get and set values for other stereotype
+style='mso-spacerun:yes'>�</span>Get and set values for other stereotype
 properties (i.e. <b style='mso-bidi-font-weight:normal'>Is Transient</b> and <b
 style='mso-bidi-font-weight:normal'>Is Resolve Proxies</b> under <span
 class=SpellE><b style='mso-bidi-font-weight:normal'>EReference</b></span> for <b
@@ -2116,56 +2118,56 @@
 </v:shape><![endif]--><![if !vml]><img border=0 width=928 height=946
 src="article_files/image032.jpg" v:shapes="_x0000_i1143"><![endif]></p>
 
-<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let’s
+<p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Let�s
 look at how to perform the same task using Java code. The code snippet below
 shows a method that programmatically gets and returns the value of a specified
 property of a specified stereotype for a specified element.</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:1'>   </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span><span
 class=GramE>protected</span> static Object <span class=SpellE>getStereotypePropertyValue</span>(</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:3'>                   </span><span
+style='margin-left:.25in'><span style='mso-tab-count:3'>������������������ </span><span
 class=SpellE>NamedElement</span> <span class=SpellE>namedElement</span>, Stereotype <span
 class=SpellE>stereotype</span>, Property <span class=SpellE>property</span>) {</pre><pre
 style='margin-left:.25in'><img border=0 width=24 height=13 id="_x0000_i1122"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>        </span>Object value = <span class=SpellE><span class=GramE>namedElement.getValue</span></span><span
+2'>������� </span>Object value = <span class=SpellE><span class=GramE>namedElement.getValue</span></span><span
 class=GramE>(</span>stereotype, <span class=SpellE>property.getName</span>());</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span><span class=GramE>out(</span>&quot;Value of stereotype property '&quot; + <span
+style='mso-tab-count:2'>���������� </span><span class=GramE>out(</span>&quot;Value of stereotype property '&quot; + <span
 class=SpellE>property.getQualifiedName</span>()</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:3'>                   </span>+ &quot;' on element '&quot; + <span
+.25in'><span style='mso-tab-count:3'>������������������ </span>+ &quot;' on element '&quot; + <span
 class=SpellE><span class=GramE>namedElement.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot;' is &quot;</pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:3'>                   </span>+ <span class=SpellE><span
+style='mso-tab-count:3'>������������������ </span>+ <span class=SpellE><span
 class=GramE>String.valueOf</span></span><span class=GramE>(</span>value) + &quot;.&quot;);</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span><span class=GramE>return</span> value;</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:1'>   </span>}</pre>
+style='mso-tab-count:2'>���������� </span><span class=GramE>return</span> value;</pre><pre
+style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the (named) element <img border=0 width=24
 height=13 id="_x0000_i1123" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>that retrieves the value of a property with a
+style='mso-spacerun:yes'>�</span>that retrieves the value of a property with a
 specified name from the dynamically created <span class=SpellE>Ecore</span>
 object instance corresponding to the specified applied stereotype, notifies the
 user, and returns it.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could get the value of the ‘<span
-class=SpellE>isVolatile</span>’ property of the ‘<span class=SpellE>EReference</span>’
-stereotype for the ‘<span class=SpellE>pendingOrders</span>’ property of the
-‘Supplier’ class in the ‘epo2’ model as follows:</p>
+let�s see this method in action. For example, we could get the value of the �<span
+class=SpellE>isVolatile</span>� property of the �<span class=SpellE>EReference</span>�
+stereotype for the �<span class=SpellE>pendingOrders</span>� property of the
+�Supplier� class in the �epo2� model as follows:</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:2'>           </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:2'>���������� </span><span
 class=SpellE><span class=GramE>getStereotypePropertyValue</span></span><span
 class=GramE>(</span><span class=SpellE>pendingOrdersProperty</span>, <span
 class=SpellE>eReferenceStereotype</span>,</pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:3'>                   </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������ </span><span class=SpellE><span
 class=GramE>isVolatileProperty</span></span>);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1124" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically get the values
+style='mso-spacerun:yes'>�</span>Write code to programmatically get the values
 of the other stereotype properties for elements in the ExtendedPO2 model.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>The
@@ -2173,57 +2175,57 @@
 specified property of a specified stereotype for a specified element to a
 specified value.</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:1'>   </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span><span
 class=GramE>protected</span> static void <span class=SpellE>setStereotypePropertyValue</span>(<span
 class=SpellE>NamedElement</span> <span class=SpellE>namedElement</span>,</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:3'>                   </span>Stereotype <span
+style='margin-left:.25in'><span style='mso-tab-count:3'>������������������ </span>Stereotype <span
 class=SpellE>stereotype</span>, Property <span class=SpellE>property</span>, Object value) {</pre><pre
 style='margin-left:.25in'><img border=0 width=24 height=13 id="_x0000_i1125"
 src="../../../../images/tag_1.gif" align=CENTER><span style='mso-tab-count:
-2'>        </span><span class=SpellE><span class=GramE>namedElement.setValue</span></span><span
+2'>������� </span><span class=SpellE><span class=GramE>namedElement.setValue</span></span><span
 class=GramE>(</span>stereotype, <span class=SpellE>property.getName</span>(), value);</pre><pre
 style='margin-left:.25in'><o:p>&nbsp;</o:p></pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:2'>           </span><span class=GramE>out(</span>&quot;Value of stereotype property '&quot; + <span
+style='mso-tab-count:2'>���������� </span><span class=GramE>out(</span>&quot;Value of stereotype property '&quot; + <span
 class=SpellE>property.getQualifiedName</span>()</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:3'>                   </span>+ &quot;' on element '&quot; + <span
+.25in'><span style='mso-tab-count:3'>������������������ </span>+ &quot;' on element '&quot; + <span
 class=SpellE><span class=GramE>namedElement.getQualifiedName</span></span><span
 class=GramE>(</span>) + &quot;' set to &quot;</pre><pre style='margin-left:
-.25in'><span style='mso-tab-count:3'>                   </span>+ <span
+.25in'><span style='mso-tab-count:3'>������������������ </span>+ <span
 class=SpellE><span class=GramE>String.valueOf</span></span><span class=GramE>(</span>value) + &quot;.&quot;);</pre><pre
-style='margin-left:.25in'><span style='mso-tab-count:1'>   </span>}</pre>
+style='margin-left:.25in'><span style='mso-tab-count:1'>�� </span>}</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Here
 we call a convenience method on the (named) element <img border=0 width=24
 height=13 id="_x0000_i1126" src="../../../../images/tag_1.gif" align=CENTER><span
-style='mso-spacerun:yes'> </span>that sets the value of a property with a
+style='mso-spacerun:yes'>�</span>that sets the value of a property with a
 specified name in the dynamically created <span class=SpellE>Ecore</span>
 object instance corresponding to the specified applied stereotype and notifies
 the user.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>OK,
-let’s see this method in action. For example, we could set the value of the ‘<span
-class=SpellE>isVolatile</span>’ property of the ‘<span class=SpellE>EReference</span>’
-stereotype for the ‘<span class=SpellE>pendingOrders</span>’ property of the
-‘Supplier’ class in the ‘epo2’ model to <span class=SpellE><span
+let�s see this method in action. For example, we could set the value of the �<span
+class=SpellE>isVolatile</span>� property of the �<span class=SpellE>EReference</span>�
+stereotype for the �<span class=SpellE>pendingOrders</span>� property of the
+�Supplier� class in the �epo2� model to <span class=SpellE><span
 style='font-family:"Courier New"'>Boolean.TRUE</span></span> as follows:</p>
 
-<pre style='margin-left:.25in'><span style='mso-tab-count:2'>           </span><span
+<pre style='margin-left:.25in'><span style='mso-tab-count:2'>���������� </span><span
 class=SpellE><span class=GramE>setStereotypePropertyValue</span></span><span
 class=GramE>(</span><span class=SpellE>pendingOrdersProperty</span>, <span
 class=SpellE>eReferenceStereotype</span>,</pre><pre style='margin-left:.25in'><span
-style='mso-tab-count:3'>                   </span><span class=SpellE><span
+style='mso-tab-count:3'>������������������ </span><span class=SpellE><span
 class=GramE>isVolatileProperty</span></span>, <span class=SpellE>Boolean.TRUE</span>);</pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><img
 border=0 width=61 height=13 id="_x0000_i1127" src="../../../../images/tryit.gif"><span
-style='mso-spacerun:yes'> </span>Write code to programmatically set the values
+style='mso-spacerun:yes'>�</span>Write code to programmatically set the values
 of the other stereotype properties for elements in the ExtendedPO2 model.</p>
 
 <h2 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Conclusion</h2>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Congratulations!
-If you’ve made it this far, you’ve successfully created and applied a simple
-profile programmatically and/or using the UML editor. There’s a whole lot more
+If you�ve made it this far, you�ve successfully created and applied a simple
+profile programmatically and/or using the UML editor. There�s a whole lot more
 that could be said, but the purpose of this article was just to introduce you
 to the concepts. Stay tuned for more articles on how to develop tools with
 UML2.</p>
@@ -2236,7 +2238,7 @@
 <h2 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>References</h2>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>[1]
-K. Hussey. <span class=GramE>“Getting Started with UML2”.</span> International
+K. Hussey. <span class=GramE>�Getting Started with UML2�.</span> International
 Business Machines Corp., 2004, 2006.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -2254,17 +2256,17 @@
 href="http://download.eclipse.org/modeling/mdt/uml2/downloads/articles/uml2.articles_200607181325.zip">uml2.articles_200607181325.zip</a>
 into your Eclipse home directory and import the <code>com.ibm.uml2.articles</code>
 plug-in into your workspace as a binary project with linked content (<b>File
-&gt; Import… &gt; External Plug-ins and Fragments</b>). You can run the <code>IntroductionToUML2Profiles</code>
+&gt; Import� &gt; External Plug-ins and Fragments</b>). You can run the <code>IntroductionToUML2Profiles</code>
 class as a Java application with two file <span class=SpellE>URIs</span> (e.g.
-“file:/C:/Introduction to UML2 Profiles” “<span class=SpellE>jar<span
+�file:/C:/Introduction to UML2 Profiles� �<span class=SpellE>jar<span
 class=GramE>:file</span></span>:/C:/Eclipse
-3.2/eclipse/plugins/org.eclipse.uml2.uml.resources_2.0.0.v200606221411.jar!/”)
+3.2/eclipse/plugins/org.eclipse.uml2.uml.resources_2.0.0.v200606221411.jar!/�)
 as program arguments. The first URI should refer to a folder that contains the
-ExtendedPO2 model described in the “Getting Started with UML2” article. The
+ExtendedPO2 model described in the �Getting Started with UML2� article. The
 second URI should use the JAR scheme (since the UML resources plug-in is <span
-class=SpellE>JAR’d</span> as of UML2 1.1) and refer to the location of the <span
+class=SpellE>JAR�d</span> as of UML2 1.1) and refer to the location of the <span
 style='font-family:"Courier New"'>org.eclipse.uml2.uml.resources</span> plug-<span
-class=SpellE>in’s</span> JAR archive.</p>
+class=SpellE>in�s</span> JAR archive.</p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 style='font-size:7.5pt'>Java and all Java-based trademarks and logos are