<html>
<head>
<title>Parameter-Entity-Referenzen</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id="Beschreibung">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
<tr>
<td valign="top" class="NAME">Parameter-Entity-Referenzen</td>
<td valign="top" class="COMPATIBILITY">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
</tr>
<tr>
<td valign="top" colspan="2" class="description">
<span class="PROGRAMLISTING"><pre><strong class="userinput">%</strong><var class="replaceable">name</var><strong class="userinput">;</strong></pre></span>


<p>
Trifft ein XML-Parser in der DTD eines Dokuments auf eine Parameter-Entity, ersetzt er die Referenz durch den Text der Entity. Unabh&auml;ngig davon, ob der Ersetzungstext als Literal oder aus einer externen Entity eingef&uuml;gt wird, der Parser f&auml;hrt mit der Analyse des Ersetzungstexts fort als ob er immer Teil des Dokuments gewesen w&auml;re. Diese Analyse hat interessante Auswirkungen auf verschachtelte Entity-Referenzen:</p>

<span class="PROGRAMLISTING"><pre>&lt;!ENTITY % YEAR "2001"&gt;
&lt;!ENTITY COPYRIGHT "&amp;#xa9; %YEAR;"&gt;
. . .
&lt;copyright_notice&gt;&amp;COPYRIGHT;&lt;/copyright_notice&gt;</pre></span>


<p>Nachdem die erforderlichen Entity-Ersetzungen vorgenommen wurden, w&auml;re das Ergebnis des obigen Beispiels das folgende vorschriftsm&auml;&szlig;ige Element:</p>

<span class="PROGRAMLISTING"><pre>&lt;copyright_notice&gt;© 2001&lt;/copyright_notice&gt;</pre></span>

<warning id="xmlnut3-CHP-21-NOTE-134" role="ora">
<p>Wie XML Parameter-Entity-Referenzen behandelt, h&auml;ngt davon ab, wo in der DTD sie vorkommen. Referenzen innerhalb des Literalwerts einer Entity-Deklaration (wie etwa <span class="LITERAL">Copyright
&amp;#xa9; %YEAR;</span>) sind nur als Teil der externen Teilmenge zul&auml;ssig. Innerhalb der internen Teilmenge d&uuml;rfen Parameter-Entity-Referenzen nur dort vorkommen, wo auch eine vollst&auml;ndige Markup-Deklaration stehen k&ouml;nnte. Anders ausgedr&uuml;ckt: innerhalb der internen Teilmenge k&ouml;nnen Parameterreferenzen nur verwendet werden, um vollst&auml;ndige Markup-Deklarationen einzubinden.</p>
</warning>

<p>Parameter-Entity-Referenzen werden nur innerhalb der DTD erkannt. Daher hat das Zeichen <span class="LITERAL">%</span> keine Signifikanz f&uuml;r die Zeichendaten und muss nicht als Zeichenreferenz angegeben werden.</p>
</td></tr>
</table>
</div>
</body>
</html>
