Varför behövs textformat?

Textformat är bekväma för att lagra information eftersom de kan skapas och bearbetas av både program och människor.

Textfiler (filer i textformat) kan öppnas, läsas och redigeras i en mängd olika textredigerare.

Många program använder textbaserade konfigurationsfiler, även om formatet innehåller siffror och binära (ja/nej) värden.

Detta gör programmen något mer komplicerade på grund av behovet av att konvertera från text till ett internt format och vice versa, men det gör det möjligt att redigera konfigurationen manuellt utan att använda ett konfigurationsverktyg i själva programmet.

Var används XML nu?

XML används inom olika IT-områden. Det kan vara konfigurationsfiler (med programinställningar) eller filer som används för att överföra data mellan program. I Java är ett av de vanligaste användningsfallen att konfigurera Maven, ett verktyg för byggautomatisering.

Struktur för ett XML-dokument

De fysiska och logiska strukturerna i ett XML-dokument hålls åtskilda. När det gäller den fysiska strukturen består dokumentet av enheter som kan referera till andra enheter.

Det enda rotelementet är dokumentenheten. En enhet är den minsta delen i ett dokument. Alla enheter har ett namn och innehåller tecken.

Tecken tillhör i sin tur en av två kategorier: teckendata eller uppmärkning.

Markeringen inkluderar:

  • taggar, som anger elementgränser;
  • deklarationer och bearbetningsinstruktioner, inklusive deras attribut;
  • enhetsreferenser;
  • kommentarer;
  • teckensekvenser som omsluter CDATA-sektioner.

Logiskt sett består dokumentet av element, kommentarer, deklarationer, enhetsreferenser och bearbetningsinstruktioner. Markup används för att skapa all denna struktur i ett dokument.

Alla beståndsdelar i ett dokument är uppdelade i en prolog och ett rotelement. Rotelementet är den obligatoriska, väsentliga delen av ett XML-dokument, medan prologen kanske inte existerar alls. Rotelementet kan bestå av kapslade element, teckendata och kommentarer. Ett dokuments element måste kapslas korrekt: alla element som börjar inuti ett annat element måste också sluta inuti det elementet.

Markup symboler

Markering börjar alltid med < och slutar med > .

Symbolerna < och > (vinkelparenteser) och & (ampersand) spelar en speciell roll. Vinkelparenteser indikerar gränserna för element, bearbetningsinstruktioner och några andra sekvenser. Och et-tecken hjälper oss att ersätta text med entiteter.

XML-deklaration

En XML-deklaration anger versionen av språket som används för att skriva dokumentet. XML-specifikationen säger att man ska starta ett dokument med en XML-deklaration eftersom den korrekta tolkningen av dokumentinnehållet beror på språkversionen.

I språkets första version (1.0) var denna deklaration valfri, men den är obligatorisk i senare versioner. En saknad deklaration antas betyda version 1.0. Deklarationen kan även innehålla information om dokumentkodningen.

Exempel:

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

Taggar

En tagg är en uppmärkningskonstruktion som innehåller namnet på ett element. Det finns starttaggar och sluttaggar. Det finns också tomma element-taggar som kombinerar start- och slutelement.

Exempel:

  • Starttagg: <tag1>

  • Sluttagg: </tag1>

  • Empty-element-tagg: <empty_tag1 />

Attribut

En annan del av XML-element är attribut. Ett element kan ha flera unika attribut. Attribut låter oss specificera mer information om ett element. Eller mer exakt, attribut definierar egenskaperna hos element.

Ett attribut är alltid ett namn-värde-par:

namn = "värde"

Exempel på ett attribut i en tagg:

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

Värdet på ett attribut måste lindas i dubbla citattecken ( " ) eller enkla citattecken ( ' ). Attribut används endast i starttaggar och tomma elementtaggar.

Escape fem specialtecken (<, >, ', ", &)

Uppenbarligen kan symbolerna < , > och & inte användas som sådana i teckendata och attributvärden. Du behöver speciella flyktsekvenser för att representera dem. Specialsekvenser används också när du skriver apostrof och citattecken inuti attributvärden:

Symbol Ersättning
< <
> >
& &
' '
" "

För att skriva \ -tecknet måste du också använda \\ .

CDATA-sektionen

En CDATA-sektion är inte en logisk enhet av text. Den här typen av avsnitt kan förekomma där XML-syntax låter oss placera teckendata i dokumentet.

Avsnittet börjar med <![CDATA[ och slutar med ]]> . Teckendata placeras mellan dessa markeringar och symbolerna < , > och & kan användas i sin direkta form.

Kommentarer

Kommentarer betraktas inte som teckendata. En kommentar börjar med <!-- och slutar med --> . Teckensekvensen -- kan inte användas i en kommentar. Inuti en kommentar betecknar inte et-tecken uppmärkning.

Exempel:

<!-- detta är en kommentar -->

Namn

I XML kan alla namn endast innehålla bokstäver i Unicode-teckentabellen, arabiska siffror, punkter, kolon, bindestreck och understreck. Namn kan börja med en bokstav, kolon eller understreck. Observera att ett namn inte kan börja med strängen XML .

Exempel

Låt oss titta på en Java-klass och ett objekt i den klassen. Sedan ska vi försöka serialisera objektet i XML-format. Klasskod:


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
}

och skapande av föremål:


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

Här är ett exempel på en giltig XML-representation av ett Java-objekt som innehåller 4 fält, varav ett är en samling (se Java-koden ovan):

<Bok>
  <title>Min favoritbok</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-schema

Ett XML-schema är en beskrivning av strukturen i ett XML-dokument. Motsvarande specifikation (XML Schema Definition eller XSD) är en W3C-rekommendation.

XSD utformades för att uttrycka de regler som ett XML-dokument måste följa. Men det mest intressanta för oss är att XSD designades för att användas vid utveckling av mjukvara som bearbetar XML-dokument. Det låter oss kontrollera korrektheten av ett XML-dokument programmatiskt.

Filer som innehåller ett XML-schema har filtillägget .xsd. Att designa ett XML-schema ligger utanför den här lektionens räckvidd, så var nu bara medveten om att möjligheten finns.