Sök…
Anmärkningar
Ur ett lagringsperspektiv är ett XML-dokument gjord av enheter. En av enheterna är dokumentenheten, som är själva XML-dokumentet.
Enheter kan klassificeras på så sätt (försiktigt sorteras efter fallande användningsordning):
- dokumentenhet : detta är den huvudsakliga XML-filen.
- interna allmänna enheter : detta är den vanligaste förutom dokumentenheten, och den som de flesta XML-användare känner till. Ofta används ordet enhet nonchalant används för dem. De tillåter att du specificerar några genvägar för längre ersättningstexter i dokumentinnehåll. De deklareras i DTD.
- den externa DTD-delmängden : en annan fil i vilken del av DTD är outsourcad.
- parameterenheter : genvägar, för användning i DTD.
- externa analyserade allmänna enheter : det är XML-fragment som lagras i andra filer.
- oparade enheter : det kan vara alla filer som XML inte sätter några begränsningar, inklusive bilder, ljud, etc.
I många fall består ett XML-dokument enbart av dokumentenheten.
Fördefinierade allmänna enheter
XML fördefinierar fem allmänna enheter som kan användas utan att deklarera dem:
& " ' < >
De är associerade med namnen amp
, quot
, apos
, lt
och 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>
Användardefinierade allmänna (interna) enheter
Det är möjligt att definiera sina egna allmänna enheter. Deklarationen inträffar i DTD-underuppsättningen, med ett namn och tillhörande ersättningstext.
Det kan sedan användas i dokumentet med hjälp av entitetsreferenssyntaxen &...;
, antingen i text eller i attributvärden.
<?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>
Externa parsade enheter
XML-fragment, även kända under namnet på externa parsade enheter , kan lagras i separata filer.
Till skillnad från XML-dokument är XML-fragment mindre restriktiva, eftersom flera element kan visas på toppnivå såväl som textnoder. Liksom ett XML-dokument kan en extern analyserad enhet börja med en XML-deklaration, men denna deklaration anses inte vara en del av dess ersättande text.
Detta är ett exempel på extern analyserad enhet:
<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>
En extern analyserad enhet kan sedan deklareras i ett XML-dokument, i DTD, och det kan användas med en enhetsreferens, som har samma syntax som för allmänna interna enheter:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
&fragment;
</root>
När enhetsreferensen är löst motsvarar detta dokument:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
This is some text
<element/>
<element/>
</root>
Varje öppningselementtagg i en extern analyserad enhet måste ha en motsvarande sluttagg: det är inte tillåtet att sprida enstaka element över flera enheter, inte heller sprida markering.
En validerande parser krävs för att lösa entitetsreferensen och inkludera dess ersättningstext i dokumentet som ovan. En icke-validerande parser kan hoppa över detta och i stället säga till den konsumtiva applikationen att det finns en olöst referens till en extern analyserad enhet.