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>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; 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.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow