Hvorfor trengs tekstformater?

Tekstformater er praktiske for lagring av informasjon fordi de kan lages og behandles av både programmer og mennesker.

Tekstfiler (filer i tekstformat) kan åpnes, leses og redigeres i en lang rekke tekstredigerere.

Mange programmer bruker tekstbaserte konfigurasjonsfiler, selv om formatet inneholder tall og binære (ja/nei) verdier.

Dette gjør programmene noe mer kompliserte på grunn av behovet for å konvertere fra tekst til et internt format og omvendt, men det gjør det mulig å redigere konfigurasjonen manuelt uten å bruke et konfigurasjonsverktøy i selve programmet.

Hvor brukes XML nå?

XML brukes på ulike områder innen IT. Det kan være konfigurasjonsfiler (med programinnstillinger) eller filer som brukes til å overføre data mellom programmer. I Java er en av de vanligste brukstilfellene å konfigurere Maven, et byggeautomatiseringsverktøy.

Strukturen til et XML-dokument

De fysiske og logiske strukturene til et XML-dokument holdes atskilt. Når det gjelder den fysiske strukturen, består dokumentet av enheter som kan referere til andre enheter.

Det eneste rotelementet er dokumentenheten. En enhet er den minste delen i et dokument. Alle enheter har et navn og inneholder tegn.

I sin tur tilhører tegn en av to kategorier: tegndata eller markup.

Markup inkluderer:

  • tagger, som angir elementgrenser;
  • erklæringer og behandlingsinstruksjoner, inkludert deres attributter;
  • enhetsreferanser;
  • kommentarer;
  • tegnsekvenser som omslutter CDATA-seksjoner.

Logisk sett består dokumentet av elementer, kommentarer, erklæringer, enhetsreferanser og behandlingsinstruksjoner. Markup brukes til å lage all denne strukturen i et dokument.

Alle bestanddelene i et dokument er delt inn i en prolog og et rotelement. Rotelementet er den obligatoriske, essensielle delen av et XML-dokument, mens prologen kanskje ikke eksisterer i det hele tatt. Rotelementet kan bestå av nestede elementer, tegndata og kommentarer. Et dokuments elementer må nestes på riktig måte: ethvert element som starter inne i et annet element, må også ende inne i det elementet.

Markup-symboler

Markering starter alltid med < og slutter med > .

Symbolene < og > (vinkelparenteser) og & (ampersand) spiller en spesiell rolle. Vinkelparenteser indikerer grensene for elementer, behandlingsinstruksjoner og noen andre sekvenser. Og og-tegnet hjelper oss å erstatte tekst med enheter.

XML-erklæring

En XML-erklæring spesifiserer versjonen av språket som brukes til å skrive dokumentet. XML-spesifikasjonen sier å starte et dokument med en XML-erklæring fordi riktig tolkning av dokumentinnholdet avhenger av versjonen av språket.

I språkets første versjon (1.0) var denne erklæringen valgfri, men den er obligatorisk i senere versjoner. En manglende erklæring antas å bety versjon 1.0. Erklæringen kan også inneholde opplysninger om dokumentkodingen.

Eksempel:

<?XML version="1.1" encoding="UTF-8" ?>

Tagger

En tag er en markup-konstruksjon som inneholder navnet på et element. Det er start-tags og slutt-tags. Det finnes også tomme-element-tags som kombinerer start- og sluttelementer.

Eksempler:

  • Start-tag: <tag1>

  • Slutttag: </tag1>

  • Tom-element-tag: <empty_tag1 />

Attributter

En annen del av XML-elementer er attributter. Et element kan ha flere unike attributter. Attributter lar oss spesifisere mer informasjon om et element. Eller mer nøyaktig, attributter definerer egenskapene til elementer.

Et attributt er alltid et navn-verdi-par:

navn = "verdi"

Eksempel på et attributt i en tag:

<tag1 name = "value">element</tag1>

Verdien til et attributt må pakkes inn i doble anførselstegn ( " ) eller enkle anførselstegn ( ' ). Attributter brukes bare i start-tagger og tomme-element-tagger.

Unngå fem spesialtegn (<, >, ', ", &)

Åpenbart kan symbolene < , > og & ikke brukes som sådan i tegndata og attributtverdier. Du må bruke spesielle escape-sekvenser for å representere dem. Spesielle sekvenser brukes også når du skriver apostrof og anførselstegn i attributtverdier:

Symbol Erstatning
< <
> >
& &
' '
" "

For å skrive \ -tegnet må du også bruke \\ .

CDATA-delen

En CDATA-seksjon er ikke en logisk enhet av tekst. Denne typen seksjoner kan forekomme der XML-syntaks lar oss plassere tegndata i dokumentet.

Seksjonen starter med <![CDATA[ og slutter med ]]> . Tegndata plasseres mellom disse markeringene, og symbolene < , > og & kan brukes i direkte form.

Kommentarer

Kommentarer regnes ikke som tegndata. En kommentar begynner med <!-- og slutter med --> . Tegnsekvensen -- kan ikke brukes i en kommentar. I en kommentar er og-tegnet ikke en markering.

Eksempel:

<!-- dette er en kommentar -->

Navn

I XML kan alle navn bare inneholde bokstaver i Unicode-tegntabellen, arabiske tall, punktum, kolon, bindestreker og understreker. Navn kan starte med en bokstav, kolon eller understrek. Merk at et navn ikke kan begynne med strengen XML .

Eksempel

La oss se på en Java-klasse og et objekt av den klassen. Deretter vil vi prøve å serialisere objektet i XML-format. Klassekode:


public class Book {
   private String title;
   private String author;
   private Integer pageCount;
   private List<String> chapters;

   public Book(String title, String author, Integer pageCount, List<String> chapters) {
       this.title = title;
       this.author = author;
       this.pageCount = pageCount;
       this.chapters = chapters;
   }
// Getters/setters
}

og opprettelse av objekter:


Book book = new Book("My Favorite Book", "Amigo", 999, Arrays.asList("Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4", "Chapter 5", "Chapter 6"));

Her er et eksempel på en gyldig XML-representasjon av et Java-objekt som inneholder 4 felt, hvorav ett er en samling (se Java-koden ovenfor):

<Bok>
  <title>Min favorittbok</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Kapittel 1</chapters>
    <chapters>Kapittel 2</chapters>
    <chapters>Kapittel 3</chapters>
    <chapters>Kapittel 4</chapters>
    <chapters>Kapittel 5</chapters>
    <chapters>Kapittel 6</chapters>
 </chapters>
</Bok>

XML-skjema

Et XML-skjema er en beskrivelse av strukturen til et XML-dokument. Den tilsvarende spesifikasjonen (XML Schema Definition, eller XSD) er en W3C-anbefaling.

XSD ble designet for å uttrykke reglene som et XML-dokument må følge. Men det mest interessante for oss er at XSD ble designet for å brukes ved utvikling av programvare som behandler XML-dokumenter. Den lar oss kontrollere riktigheten til et XML-dokument programmatisk.

Filer som inneholder et XML-skjema har filtypen .xsd. Utforming av et XML-skjema er utenfor omfanget av denne leksjonen, så foreløpig bare vær oppmerksom på at muligheten eksisterer.