Hvorfor er tekstformater nødvendige?

Tekstformater er praktiske til lagring af information, fordi de kan oprettes og behandles af både programmer og mennesker.

Tekstfiler (filer i tekstformat) kan åbnes, læses og redigeres i en lang række forskellige teksteditorer.

Mange programmer bruger tekstbaserede konfigurationsfiler, selvom formatet indeholder tal og binære (ja/nej) værdier.

Det gør programmerne noget mere komplicerede på grund af behovet for at konvertere fra tekst til et internt format og omvendt, men det gør det muligt at redigere konfigurationen manuelt uden at bruge et konfigurationsværktøj i selve programmet.

Hvor bruges XML nu?

XML bruges inden for forskellige it-områder. Det kan være konfigurationsfiler (med programindstillinger) eller filer, der bruges til at overføre data mellem programmer. I Java er en af ​​de mest almindelige brugssager at konfigurere Maven, et byggeautomatiseringsværktøj.

Struktur af et XML-dokument

De fysiske og logiske strukturer i et XML-dokument holdes adskilt. Med hensyn til den fysiske struktur består dokumentet af enheder, der kan henvise til andre enheder.

Det eneste rodelement er dokumentenheden. En enhed er den mindste del i et dokument. Alle enheder har et navn og indeholder tegn.

Til gengæld hører tegn til en af ​​to kategorier: tegndata eller markup.

Markup inkluderer:

  • tags, som angiver elementgrænser;
  • erklæringer og behandlingsinstruktioner, herunder deres egenskaber;
  • enhedsreferencer;
  • kommentarer;
  • tegnsekvenser, der omslutter CDATA-sektioner.

Logisk set består dokumentet af elementer, kommentarer, erklæringer, enhedsreferencer og behandlingsinstruktioner. Markup bruges til at skabe hele denne struktur i et dokument.

Alle de bestanddele af et dokument er opdelt i en prolog og et rodelement. Rodelementet er den obligatoriske, væsentlige del af et XML-dokument, mens prologen måske slet ikke eksisterer. Rodelementet kan bestå af indlejrede elementer, tegndata og kommentarer. Et dokuments elementer skal indlejres korrekt: ethvert element, der starter inde i et andet element, skal også ende inde i det element.

Markup symboler

Markup starter altid med < og slutter med > .

Symbolerne < og > (vinkelparenteser) og & (ampersand) spiller en særlig rolle. Vinkelparenteser angiver grænserne for elementer, behandlingsinstruktioner og nogle andre sekvenser. Og et-tegnet hjælper os med at erstatte tekst med enheder.

XML-erklæring

En XML-erklæring angiver versionen af ​​det sprog, der bruges til at skrive dokumentet. XML-specifikationen siger, at man skal starte et dokument med en XML-erklæring, fordi den korrekte fortolkning af dokumentets indhold afhænger af sprogets version.

I sprogets første version (1.0) var denne erklæring valgfri, men den er obligatorisk i senere versioner. En manglende erklæring antages at betyde version 1.0. Erklæringen kan også indeholde oplysninger om dokumentkodningen.

Eksempel:

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

Tags

Et tag er en opmærkningskonstruktion, der indeholder navnet på et element. Der er start-tags og slut-tags. Der er også tomme-element-tags, der kombinerer start- og slutelementer.

Eksempler:

  • Start tag: <tag1>

  • Sluttag: </tag1>

  • Tomt-element-tag: <empty_tag1 />

Egenskaber

En anden del af XML-elementer er attributter. Et element kan have flere unikke attributter. Attributter lader os specificere flere oplysninger om et element. Eller mere præcist, attributter definerer elementernes egenskaber.

En attribut er altid et navn-værdi-par:

navn = "værdi"

Eksempel på en attribut i et tag:

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

Værdien af ​​en attribut skal pakkes ind i dobbelte anførselstegn ( " ) eller enkelte anførselstegn ( ' ). Attributter bruges kun i start-tags og tomme-element-tags.

Undgå fem specialtegn (<, >, ', ", &)

Symbolerne < , > og & kan naturligvis ikke bruges som sådan i tegndata og attributværdier. Du skal bruge specielle escape-sekvenser for at repræsentere dem. Særlige sekvenser bruges også, når du skriver apostrof og anførselstegn inde i attributværdier:

Symbol Udskiftning
< <
> >
& &
' '
" "

For at skrive \ -tegnet skal du også bruge \\ .

CDATA sektion

En CDATA-sektion er ikke en logisk tekstenhed. Denne type sektion kan forekomme, hvor XML-syntaks lader os placere tegndata i dokumentet.

Afsnittet starter med <![CDATA[ og slutter med ]]> . Tegndata placeres mellem disse markup-bits, og symbolerne < , > og & kan bruges i deres direkte form.

Kommentarer

Kommentarer betragtes ikke som karakterdata. En kommentar begynder med <!-- og slutter med --> . Tegnsekvensen -- kan ikke bruges i en kommentar. Inde i en kommentar er et-tegnet heller ikke en markering.

Eksempel:

<!-- dette er en kommentar -->

Navne

I XML kan alle navne kun indeholde bogstaver i Unicode-tegntabellen, arabiske tal, punktum, koloner, bindestreger og understregninger. Navne kan starte med et bogstav, kolon eller understregning. Bemærk, at et navn ikke kan begynde med strengen XML .

Eksempel

Lad os se på en Java-klasse og et objekt i den klasse. Derefter vil vi forsøge at 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 skabelse af 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-repræsentation af et Java-objekt, der indeholder 4 felter, hvoraf det ene er en samling (se Java-koden ovenfor):

<Bog>
  <title>Min favoritbog</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Kapitel 1</chapters>
    <chapters>Kapitel 2</chapters>
    <chapters>Kapitel 3</chapters>
    <chapters>Kapitel 4</chapters>
    <chapters>Kapitel 5</chapters>
    <chapters>Kapitel 6</chapters>
 </chapters>
</Book>

XML skema

Et XML-skema er en beskrivelse af strukturen af ​​et XML-dokument. Den tilsvarende specifikation (XML Schema Definition eller XSD) er en W3C-anbefaling.

XSD er designet til at udtrykke de regler, som et XML-dokument skal følge. Men det mest interessante for os er, at XSD er designet til at blive brugt ved udvikling af software, der behandler XML-dokumenter. Det lader os kontrollere korrektheden af ​​et XML-dokument programmatisk.

Filer, der indeholder et XML-skema, har filtypenavnet .xsd. Design af et XML-skema ligger uden for rammerne af denne lektion, så indtil videre skal du blot være opmærksom på, at muligheden eksisterer.