Suche…
Bemerkungen
Aus Sicht des Speichers besteht ein XML-Dokument aus Entitäten. Eine der Entitäten ist die Dokumententität, die das XML-Hauptdokument selbst ist.
Entitäten können so klassifiziert werden (vorläufig nach absteigender Nutzungsreihenfolge sortiert):
- Dokumententität : Dies ist die Haupt-XML-Datei.
- Interne allgemeine Entitäten : Dies ist die häufigste Entität neben der Entität Document und die, die die meisten XML-Benutzer kennen. Oft wird das Wort " Entität" gelegentlich für sie verwendet. Sie ermöglichen die Angabe einiger Abkürzungen für längere Ersetzungstexte im Dokumentinhalt. Sie sind in der DTD deklariert.
- die externe DTD-Untermenge : eine andere Datei, in die ein Teil der DTD ausgelagert wird.
- Parameterentitäten : Tastenkombinationen zur Verwendung in der DTD.
- Externe geparste allgemeine Entitäten : Hierbei handelt es sich um XML-Fragmente, die in anderen Dateien gespeichert sind.
- Nicht analysierte Entitäten : Dies können beliebige Dateien sein, für die XML keine Einschränkungen auferlegt , einschließlich Bilder, Töne usw.
In vielen Fällen besteht ein XML-Dokument nur aus der Dokumententität.
Vordefinierte allgemeine Entitäten
XML gibt fünf allgemeine Entitäten vor, die verwendet werden können, ohne sie zu deklarieren:
& " ' < >
Sie sind mit den Namen amp
, quot
, apos
, lt
und gt
.
<?xml version="1.0"?>
<entities>
& is an ampersand.
" is a quote.
' is an apostrophe.
< is a lower-than sign.
> is a greater-than sign.
</entities>
Benutzerdefinierte allgemeine (interne) Entitäten
Es ist möglich, eigene allgemeine Entitäten zu definieren. Die Deklaration erfolgt im DTD-Subset mit einem Namen und dem zugehörigen Ersetzungstext.
Sie kann dann mit der Entitätsreferenzsyntax &...;
im Dokument verwendet werden &...;
entweder in Text oder in Attributwerten.
<?xml version="1.0"?>
<!DOCTYPE my-document [
<!ENTITY my-entity "This is my entity">
]>
<my-document>
The entity was declared as follows: &my-entity;
<element attribute="Entity: &my-entity;"/>
</my-document>
Externe analysierte Entitäten
XML-Fragmente, auch bekannt unter dem Namen von externen geparsten Entitäten , können in separaten Dateien gespeichert werden.
XML-Fragmente sind im Gegensatz zu XML-Dokumenten weniger restriktiv, da mehrere Elemente sowie Textknoten auf oberster Ebene erscheinen können. Wie ein XML-Dokument kann eine externe geparste Entität mit einer XML-Deklaration beginnen, diese Deklaration wird jedoch nicht als Teil ihres Ersetzungstextes betrachtet.
Dies ist ein Beispiel für eine externe geparste Entität:
<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>
Eine externe analysierte Entität kann dann in einem XML-Dokument in der DTD deklariert und mit einer Entitätsreferenz verwendet werden, die dieselbe Syntax wie für allgemeine interne Entitäten hat:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
&fragment;
</root>
Wenn die Entitätsreferenz aufgelöst ist, entspricht dieses Dokument:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
This is some text
<element/>
<element/>
</root>
Jedes öffnende Element-Tag in einer externen analysierten Entität muss über ein entsprechendes End-Tag verfügen: Es ist nicht zulässig, einzelne Elemente über mehrere Entitäten zu verteilen oder Markup zu verteilen.
Ein validierender Parser ist erforderlich, um die Entitätsreferenz aufzulösen und den Ersetzungstext wie oben in das Dokument aufzunehmen. Ein nicht validierender Parser kann dies überspringen und stattdessen der konsumierenden Anwendung mitteilen, dass ein nicht aufgelöster Verweis auf eine externe geparste Entität vorhanden ist.