Skip to main content

Een XML-bestand converteren om goed gevormd te zijn

Create and Execute MapReduce in Eclipse (Juni- 2026)

Create and Execute MapReduce in Eclipse (Juni- 2026)
Anonim

Soms is het gemakkelijker om te begrijpen hoe goed geformuleerde XML kan worden geschreven door een voorbeeld te zien. De Web Writer-nieuwsbrief is geschreven in een vorm van XML - we noemen het AML of About Markup Language (go figure). Hoewel dit een werkdocument is, is het niet echt een goed gevormd of geldig XML-document.

Goed Gevormd

Er zijn een aantal specifieke regels om een ​​goed gevormd XML-document te maken:

  • De XML-verklaring moet voorop staan ​​in elk document.
  • Opmerkingen zijn niet geldig binnen een tag. Opmerkingen mogen niet twee koppeltekens achter elkaar bevatten, behalve het begin en het einde van de opmerking.
  • Tags moeten bijvoorbeeld een eindtag hebben of zijn gesloten binnen de singleton-tag zelf
    .
  • Alle attributen van tags moeten worden vermeld, bij voorkeur dubbele aanhalingstekens, tenzij het attribuut zelf een dubbel aanhalingsteken bevat.
  • Elk XML-document moet één element bevatten dat alle andere elementen volledig bevat.

Er zijn slechts twee problemen met het document waardoor het niet goed gevormd is:

Het eerste dat het AML-document nodig heeft, is een XML-verklaring.

Het andere probleem is dat er geen enkel element is dat alle andere elementen volledig omsluit. Om dit te verhelpen, voegen we een extern containerelement toe:

Als u deze twee eenvoudige wijzigingen aanbrengt (en ervoor zorgt dat alle elementen alleen CDATA bevatten), wordt het niet-goedgevormde document omgezet in een goed gevormd document.

Een geldig XML-document wordt gevalideerd aan de hand van een DTD (Document Type Definition) of XML Schema. Dit zijn een set regels gemaakt door de ontwikkelaar of een standaardorganisatie die de semantiek van het XML-document definiëren. Deze vertellen de computer wat te doen met de markup.

In het geval van de Over Markup Language, omdat dit geen standaard XML-taal is, zoals XHTML of SMIL, zou de DTD door de ontwikkelaar worden gemaakt. Die DTD zou waarschijnlijk op dezelfde server staan ​​als het XML-document en boven aan het document wordt verwezen.

Voordat u begint met het ontwikkelen van een DTD of Schema voor uw documenten, moet u zich realiseren dat een XML-document eenvoudigweg goed beschreven is en zelfdetecterend is en dus geen DTD nodig heeft.

Met ons goedgevormde AML-document zijn er bijvoorbeeld de volgende tags:

Als u bekend bent met de Web Writer-nieuwsbrief, herkent u mogelijk de verschillende delen van de nieuwsbrief. Dit maakt het heel eenvoudig om nieuwe XML-documenten te maken met hetzelfde standaardformaat. We plaatsen altijd de volledige titel in de tag en de eerste sectie-URL in de tag.

DTD

Als u een geldig XML-document wilt schrijven, ofwel om de gegevens te gebruiken of om het te verwerken, voegt u het in uw document met de tag. In deze tag definieert u de basis-XML-tag in het document en de locatie van de DTD (meestal een Web-URI). Bijvoorbeeld:

Een aardig ding over DTD-verklaringen is dat je kunt verklaren dat een DTD lokaal is voor het systeem waar het XML-document is met het "SYSTEEM". U kunt ook verwijzen naar een openbare DTD, bijvoorbeeld met een HTML 4.0-document:

Wanneer u beide gebruikt, vertelt u het document om een ​​specifieke DTD (de openbare id) te gebruiken en waar u deze kunt vinden (de systeem-ID).

Ten slotte kunt u een interne DTD direct in het document opnemen, binnen de DOCTYPE-tag. Bijvoorbeeld (dit is geen volledige DTD voor het AML-document):

>

XML-schema

Om een ​​geldig XML-document te maken, kunt u ook een XML Schema-document gebruiken om uw XML te definiëren. XML-schema is een XML-document dat XML-documenten beschrijft. Leer hoe je een schema schrijft.

Notitie

Alleen wijzen naar een DTD of XML Schema is niet genoeg. De XML die in het document staat, moet de regels in de DTD of het Schema volgen. Het gebruik van een validerende parser is een eenvoudige manier om te controleren of uw XML de DTD-regels volgt. Je kunt veel van dergelijke parsers online vinden.