Zoeken…


Opmerkingen

Vanuit een opslagperspectief bestaat een XML-document uit entiteiten. Een van de entiteiten is de documententiteit, het belangrijkste XML-document zelf.

Entiteiten kunnen als volgt worden geclassificeerd (voorlopig gesorteerd op afnemende volgorde van gebruik):

  • documententiteit : dit is het belangrijkste XML-bestand.
  • interne algemene entiteiten : dit is de meest voorkomende naast de documententiteit, en degene waarvan de meeste XML-gebruikers zich bewust zijn. Vaak wordt het woord entiteit terloops voor hen gebruikt. Hiermee kunt u enkele snelkoppelingen opgeven voor langere vervangende teksten in documentinhoud. Ze worden aangegeven in de DTD.
  • de externe DTD-subset : een ander bestand waarin een deel van de DTD is uitbesteed.
  • parameter entiteiten : snelkoppelingen, voor gebruik in de DTD.
  • externe geparseerde algemene entiteiten : dit zijn XML-fragmenten die zijn opgeslagen in andere bestanden.
  • niet-gepaarde entiteiten : dit kunnen alle bestanden zijn waarvoor XML geen beperkingen oplegt , inclusief afbeeldingen, geluiden, enz.

In veel gevallen bestaat een XML-document uitsluitend uit de documententiteit.

Vooraf gedefinieerde algemene entiteiten

XML definieert vooraf vijf algemene entiteiten die kunnen worden gebruikt zonder ze aan te geven:

& " ' < >

Ze worden geassocieerd met de namen amp , quot , apos , lt en 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>

Door de gebruiker gedefinieerde algemene (interne) entiteiten

Het is mogelijk om eigen algemene entiteiten te definiëren. De aangifte vindt plaats in de DTD-subset, met een naam en de bijbehorende vervangende tekst.

Het kan vervolgens in het document worden gebruikt met behulp van de entiteitsreferentiesyntaxis &...; , hetzij in tekst, hetzij in kenmerkwaarden.

<?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 geparseerde entiteiten

XML-fragmenten, ook bekend onder de naam van externe ontlede entiteiten , kunnen worden opgeslagen in afzonderlijke bestanden.

XML-fragmenten zijn, in tegenstelling tot XML-documenten, minder beperkend, omdat verschillende elementen op het hoogste niveau kunnen verschijnen, evenals tekstknooppunten. Net als een XML-document kan een externe parse-entiteit beginnen met een XML-aangifte, maar deze aangifte wordt niet beschouwd als onderdeel van de vervangende tekst.

Dit is een voorbeeld van een externe parse-entiteit:

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

Een externe ontlede entiteit kan vervolgens worden gedeclareerd in een XML-document, in de DTD, en deze kan worden gebruikt met een entiteitsverwijzing, die dezelfde syntaxis heeft als voor algemene interne entiteiten:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

Wanneer de entiteitsreferentie is opgelost, is dit document gelijk aan:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

Elke openingstag-tag in een externe geparseerde entiteit moet een overeenkomstige einde-tag hebben: het is niet toegestaan om afzonderlijke elementen te spreiden over meerdere entiteiten, noch om markup te verspreiden.

Een validerende parser is vereist om de entiteitsreferentie op te lossen en de vervangende tekst zoals hierboven in het document op te nemen. Een niet-validerende parser kan dit overslaan en in plaats daarvan de verbruikende toepassing vertellen dat er een onopgeloste verwijzing is naar een externe parsed entiteit.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow