Warum werden Textformate benötigt?

Textformate eignen sich zum Speichern von Informationen, da sie sowohl von Programmen als auch von Menschen erstellt und verarbeitet werden können.

Textdateien (Dateien im Textformat) können in den unterschiedlichsten Texteditoren geöffnet, gelesen und bearbeitet werden.

Viele Programme verwenden textbasierte Konfigurationsdateien, auch wenn das Format Zahlen und Binärwerte (Ja/Nein) enthält.

Dies macht die Programme etwas komplizierter, da die Konvertierung von Text in ein internes Format und umgekehrt erforderlich ist, ermöglicht jedoch die manuelle Bearbeitung der Konfiguration, ohne ein Konfigurationstool im Programm selbst zu verwenden.

Wo wird XML jetzt verwendet?

XML wird in verschiedenen Bereichen der IT eingesetzt. Dabei kann es sich um Konfigurationsdateien (mit Programmeinstellungen) oder um Dateien zur Datenübertragung zwischen Programmen handeln. Einer der häufigsten Anwendungsfälle in Java ist die Konfiguration von Maven, einem Build-Automatisierungstool.

Struktur eines XML-Dokuments

Die physischen und logischen Strukturen eines XML-Dokuments werden getrennt gehalten. Von der physischen Struktur her besteht das Dokument aus Entitäten, die auf andere Entitäten verweisen können.

Das einzige Wurzelelement ist die Dokumententität. Eine Entität ist der kleinste Teil in einem Dokument. Alle Entitäten haben einen Namen und enthalten Zeichen.

Zeichen gehören wiederum zu einer von zwei Kategorien: Zeichendaten oder Markup.

Das Markup umfasst:

  • Tags, die Elementgrenzen kennzeichnen;
  • Erklärungen und Verarbeitungsanweisungen einschließlich ihrer Attribute;
  • Entitätsreferenzen;
  • Kommentare;
  • Zeichenfolgen, die CDATA-Abschnitte umschließen.

Logischerweise besteht das Dokument aus Elementen, Kommentaren, Deklarationen, Entitätsreferenzen und Verarbeitungsanweisungen. Markup wird verwendet, um die gesamte Struktur in einem Dokument zu erstellen.

Alle Bestandteile eines Dokuments sind in ein Prolog- und ein Wurzelelement unterteilt. Das Stammelement ist der obligatorische, wesentliche Teil eines XML-Dokuments, während der Prolog möglicherweise überhaupt nicht vorhanden ist. Das Stammelement kann aus verschachtelten Elementen, Zeichendaten und Kommentaren bestehen. Die Elemente eines Dokuments müssen korrekt verschachtelt sein: Jedes Element, das innerhalb eines anderen Elements beginnt, muss auch innerhalb dieses Elements enden.

Markup-Symbole

Markup beginnt immer mit < und endet mit > .

Eine besondere Rolle spielen die Symbole < und > (spitze Klammern) und & (kaufmännisches Und). Spitze Klammern geben die Grenzen von Elementen, Verarbeitungsanweisungen und einige andere Sequenzen an. Und das kaufmännische Und hilft uns, Text durch Entitäten zu ersetzen.

XML-Deklaration

Eine XML-Deklaration gibt die Version der Sprache an, die zum Schreiben des Dokuments verwendet wird. Die XML-Spezifikation schreibt vor, ein Dokument mit einer XML-Deklaration zu beginnen, da die richtige Interpretation des Dokumentinhalts von der Version der Sprache abhängt.

In der ersten Version der Sprache (1.0) war diese Deklaration optional, in späteren Versionen ist sie jedoch obligatorisch. Bei einer fehlenden Deklaration wird davon ausgegangen, dass es sich um Version 1.0 handelt. Die Deklaration kann auch Informationen zur Dokumentkodierung enthalten.

Beispiel:

<?XML-Version="1.1" Kodierung="UTF-8" ?>

Stichworte

Ein Tag ist ein Markup-Konstrukt, das den Namen eines Elements enthält. Es gibt Start-Tags und End-Tags. Es gibt auch Tags mit leeren Elementen, die Start- und Endelemente kombinieren.

Beispiele:

  • Start-Tag: <tag1>

  • End-Tag: </tag1>

  • Tag für leere Elemente: <empty_tag1 />

Attribute

Ein weiterer Teil von XML-Elementen sind Attribute. Ein Element kann mehrere eindeutige Attribute haben. Mithilfe von Attributen können wir weitere Informationen zu einem Element angeben. Genauer gesagt definieren Attribute die Eigenschaften von Elementen.

Ein Attribut ist immer ein Name-Wert-Paar:

Name = „Wert“

Beispiel für ein Attribut in einem Tag:

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

Der Wert eines Attributs muss in doppelte Anführungszeichen ( " ) oder einfache Anführungszeichen ( ' ) eingeschlossen werden. Attribute werden nur in Start-Tags und den Tags für leere Elemente verwendet.

Fünf Sonderzeichen maskieren (<, >, ', ”, &)

Offensichtlich können die Symbole < , > und & nicht als solche in Zeichendaten und Attributwerten verwendet werden. Sie benötigen spezielle Escape-Sequenzen, um sie darzustellen. Auch beim Schreiben von Apostrophen und Anführungszeichen innerhalb von Attributwerten werden spezielle Sequenzen verwendet:

Symbol Ersatz
< <
> >
& &Ampere;
' '
" "

Um das Zeichen \ zu schreiben, müssen Sie außerdem \\ verwenden .

CDATA-Abschnitt

Ein CDATA-Abschnitt ist keine logische Texteinheit. Diese Art von Abschnitt kann dort auftreten, wo die XML-Syntax es uns ermöglicht, Zeichendaten im Dokument zu platzieren.

Der Abschnitt beginnt mit <![CDATA[ und endet mit ]]> . Zwischen diesen Markup-Bits werden Zeichendaten platziert, und die Symbole < , > und & können in ihrer direkten Form verwendet werden.

Kommentare

Kommentare gelten nicht als Zeichendaten. Ein Kommentar beginnt mit <!-- und endet mit --> . Die Zeichenfolge kann nicht innerhalb eines Kommentars verwendet werden. Außerdem ist das kaufmännische Und-Zeichen innerhalb eines Kommentars kein Markup.

Beispiel:

<!-- das ist ein Kommentar -->

Namen

In XML dürfen alle Namen nur Buchstaben aus der Unicode-Zeichentabelle, arabische Ziffern, Punkte, Doppelpunkte, Bindestriche und Unterstriche enthalten. Namen können mit einem Buchstaben, Doppelpunkt oder Unterstrich beginnen. Beachten Sie, dass ein Name nicht mit der Zeichenfolge XML beginnen darf .

Beispiel

Schauen wir uns eine Java-Klasse und ein Objekt dieser Klasse an. Dann werden wir versuchen, das Objekt im XML-Format zu serialisieren. Klassencode:

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
}

und Erstellung von Objekten:

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

Hier ist ein Beispiel für eine gültige XML-Darstellung eines Java-Objekts, das vier Felder enthält, von denen eines eine Sammlung ist (siehe den Java-Code oben):

<Book>
  <title>Mein Lieblingsbuch</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

Ein XML-Schema ist eine Beschreibung der Struktur eines XML-Dokuments. Die entsprechende Spezifikation (XML Schema Definition oder XSD) ist eine W3C-Empfehlung.

XSD wurde entwickelt, um die Regeln auszudrücken, denen ein XML-Dokument folgen muss. Das Interessanteste für uns ist jedoch, dass XSD für die Entwicklung von Software zur Verarbeitung von XML-Dokumenten konzipiert wurde. Damit können wir die Korrektheit eines XML-Dokuments programmgesteuert überprüfen.

Dateien, die ein XML-Schema enthalten, haben die Erweiterung .xsd. Das Entwerfen eines XML-Schemas geht über den Rahmen dieser Lektion hinaus. Seien Sie sich also vorerst bewusst, dass die Möglichkeit besteht.