# XML Entitäten



## mfernau (30. Apr 2011)

Guten Morgen!

Ich hätte eigentlich nur eine winzige Frage, deren Antwort ich eigentlich selbst meine zu kennen.
Ich habe hier ein XML-Dokument von einem Lieferanten, das beispielhaft so aussieht:

```
<root>
  <child>Das hier ist Text</child>
  <child>Donaudampfschiffahrts;shy;kapitänsmütze</child>
</root>
```

Es geht mir hier um das ;shy; - mein obiges Beispiel ist natürlich nur winzig. Im echten Dokument kommt dieses ;shy; unzählige mal vor. Für mich war das einfach ein Fehler den ich melden wollte. Daraufhin bekam ich die belehrende Antwort, dass Entitäten in XML ja mit einem ; und nicht (wie in HTML) mit einem & beginnen. Das Dokument wäre sonst nicht mehr wohlgeformt.
Klar wäre es das nicht, denn & shy; gibt es im XML-Kontext nicht. Ich habe es mir daraufhin nicht nehmen lassen entsprechende Stellen der RFC zu rezitieren in der eindeutig beschrieben wird wie eine Entität in XML aussieht: Extensible Markup Language (XML) 1.0 (Fifth Edition)

Die Antwort darauf war prinzipiell ein Widerspruch und weitere Standhaftigkeit, dass Entitäten mit einem ; beginnen.

Ich bin doch nicht vom anderen Stern oder bin ich hier echt so auf dem Holzweg? Ich arbeite nun schon seit meiner Hochschulzeit vor 8 Jahren mit XML und mir ist nie etwas derartiges untergekommen. Aber ich lasse mich auch gern vom Gegenteil überzeugen wenn mich da jemand aufklären mag.

Besten Dank und Grüße,
Martin


----------



## musiKk (30. Apr 2011)

mfernau hat gesagt.:


> Daraufhin bekam ich die belehrende Antwort, dass Entitäten in XML ja mit einem ; und nicht (wie in HTML) mit einem & beginnen. Das Dokument wäre sonst nicht mehr wohlgeformt.



Das ist Unsinn. XML und HTML sind beides Ausprägungen von SGML und dort ist die Verwendung von Entities definiert - entsprechend ist sie auch bei XML und HTML gleich. Natürlich kann man sich eine eigene Konvention auferlegen und Strings der Form [c];*;[/c] gesondert behandeln, aber das sind keine Entities sondern ganz normaler Text. Entities hingegen sind syntaktische Konstrukte.

Richtig ist aber, dass das Dokument nicht verarbeitet werden kann, wenn ein Entity wie [c]&shy ;[/c] (ohne Leerzeichen - blöde Forensoftware) nicht definiert wurde. Das passiert im DTD. Die einzigen Entities, die vordefiniert sind, sind in Abschnitt 4.6 gegeben.

(Ich bin mal beim Begriff Entity geblieben. Richtig wäre eigentlich: [c]shy[/c] ist das Entity und [c]&shy ;[/c] ist eine Entity Reference.)


----------



## mfernau (1. Mai 2011)

Danke für die Klarstellung. War mir ja auch sicher dass das Unsinn ist - aber wollte trotzdem nochmal nachfragen.


----------

