Miért van szükség szöveges formátumokra?

A szöveges formátumok kényelmesek az információk tárolására, mert mind a programok, mind az emberek létrehozhatják és feldolgozhatják őket.

A szöveges fájlok (szöveg formátumú fájlok) számos szövegszerkesztőben megnyithatók, olvashatók és szerkeszthetők.

Sok program szöveges konfigurációs fájlokat használ, még akkor is, ha a formátum számokat és bináris (igen/nem) értékeket tartalmaz.

Ez némileg bonyolultabbá teszi a programokat, mivel szövegből belső formátumba kell konvertálni, és fordítva, de lehetővé teszi a konfiguráció manuális szerkesztését anélkül, hogy magában a programban használnánk konfigurációs eszközt.

Hol használják most az XML-t?

Az XML-t az IT különféle területein használják. Lehetnek konfigurációs fájlok (programbeállításokkal), vagy a programok közötti adatátvitelre használt fájlok. A Java-ban az egyik leggyakoribb felhasználási eset a Maven, egy építési automatizálási eszköz konfigurálása.

XML dokumentum szerkezete

Az XML-dokumentumok fizikai és logikai struktúráit külön kell tartani. Fizikai szerkezetét tekintve a dokumentum olyan entitásokból áll, amelyek hivatkozhatnak más entitásokra.

Az egyetlen gyökérelem a dokumentum entitás. Az entitás a dokumentum legkisebb része. Minden entitásnak van neve és karaktereket tartalmaz.

A karakterek viszont két kategória egyikébe tartoznak: karakteradatok vagy jelölések.

A jelölés a következőket tartalmazza:

  • címkék, amelyek az elemek határait jelölik;
  • nyilatkozatok és feldolgozási utasítások, beleértve azok attribútumait;
  • entitás hivatkozások;
  • Hozzászólások;
  • CDATA szakaszokat burkoló karaktersorozatok.

Logikailag a dokumentum elemekből, megjegyzésekből, nyilatkozatokból, entitáshivatkozásokból és feldolgozási utasításokból áll. A jelölést arra használják, hogy mindezt a struktúrát létrehozzák egy dokumentumban.

A dokumentum összes alkotórésze egy prolog- és egy gyökérelemre van felosztva. A gyökérelem egy XML dokumentum kötelező, lényeges része, míg a prolog egyáltalán nem létezik. A gyökérelem állhat beágyazott elemekből, karakteradatokból és megjegyzésekből. A dokumentum elemeit megfelelően be kell ágyazni: minden olyan elemnek, amely egy másik elemen belül kezdődik, az adott elemen belül kell végződnie.

Jelölő szimbólumok

A jelölés mindig < -val kezdődik és > -re végződik .

A < és > (szögzárójel) és az & (és) szimbólumok különleges szerepet játszanak. A szögzárójelek az elemek határait, a feldolgozási utasításokat és néhány más sorozatot jelzik. Az „és” pedig segít a szöveget entitásokkal helyettesíteni.

XML deklaráció

Az XML-deklaráció határozza meg a dokumentum írásához használt nyelv verzióját. Az XML specifikáció szerint a dokumentumot XML deklarációval kell indítani, mert a dokumentum tartalmának megfelelő értelmezése a nyelv verziójától függ.

A nyelv első verziójában (1.0) ez a deklaráció nem kötelező, de a későbbi verziókban kötelező. A hiányzó deklaráció az 1.0-s verziót jelenti. A nyilatkozat a dokumentum kódolására vonatkozó információkat is tartalmazhat.

Példa:

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

Címkék

A címke egy jelölőkonstrukció, amely egy elem nevét tartalmazza. Vannak kezdő és záró címkék. Vannak üres elemű címkék is, amelyek a kezdő és a záró elemeket kombinálják.

Példák:

  • Kezdő címke: <tag1>

  • Végcímke: </tag1>

  • Üres elemű címke: <empty_tag1 />

Attribútumok

Az XML-elemek másik része az attribútumok. Egy elemnek több egyedi attribútuma is lehet. Az attribútumok segítségével további információkat adhatunk meg egy elemről. Pontosabban az attribútumok határozzák meg az elemek tulajdonságait.

Az attribútum mindig egy név-érték pár:

név = "érték"

Példa egy attribútumra egy címkében:

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

Az attribútumok értékét dupla idézőjelekbe ( " ) vagy szimpla idézőjelekbe ( ' ) kell csomagolni. Az attribútumok csak a kezdő címkékben és az üres elemű címkékben használhatók.

Öt speciális karakter kihagyása (<, >, ', , &)

Nyilvánvaló, hogy a < , > és & szimbólumok nem használhatók a karakteradatokban és az attribútumértékekben. Speciális escape szekvenciákra van szükség a megjelenítésükhöz. Speciális szekvenciák akkor is használatosak, ha aposztrófokat és idézőjeleket írunk az attribútumértékek közé:

Szimbólum Csere
< <
> >
& &
' '
" "

Ezenkívül a \ karakter írásához a \\ karaktert kell használni .

CDATA szakasz

A CDATA szakasz nem a szöveg logikai egysége. Ez a fajta szakasz akkor fordulhat elő, ha az XML szintaxis lehetővé teszi karakteradatok elhelyezését a dokumentumban.

A szakasz <![CDATA[ -val kezdődik és ]]> -re végződik . A karakteradatok a jelölés ezen bitjei közé kerülnek, és a < , > és & szimbólumok közvetlen formájukban használhatók.

Hozzászólások

A megjegyzések nem minősülnek karakteradatnak. A megjegyzés <!-- karakterrel kezdődik és --> karakterrel végződik . A karaktersorozat -- nem használható megjegyzésben. Ezenkívül a megjegyzésekben az „és” karakter nem jelöli a jelölést.

Példa:

<!-- ez egy megjegyzés -->

Nevek

Az XML-ben minden név csak a Unicode karaktertáblázatban szereplő betűket, arab számokat, pontot, kettőspontot, kötőjelet és aláhúzásjelet tartalmazhat. A nevek kezdődhetnek betűvel, kettősponttal vagy aláhúzással. Vegye figyelembe, hogy a név nem kezdődhet az XML karakterlánccal .

Példa

Nézzünk meg egy Java osztályt és annak objektumát. Ezután megpróbáljuk szerializálni az objektumot XML formátumban. Osztály kódja:


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
}

és objektumok létrehozása:


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

Íme egy példa egy Java objektum érvényes XML-reprezentációjára, amely 4 mezőt tartalmaz, amelyek közül az egyik egy gyűjtemény (lásd fent a Java kódot):

<Book>
  <title>Kedvenc könyvem</title>
  <author>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>1.fejezet</chapters>
    <chapters>2.fejezet</chapters>
    <chapters>3. fejezet</chapters>
    <chapters>4.fejezet</chapters>
    <chapters>5.fejezet</chapters>
    <chapters>6.fejezet</chapters>
 </chapters>
</Book>

XML séma

Az XML-séma egy XML-dokumentum szerkezetének leírása. A megfelelő specifikáció (XML Schema Definition vagy XSD) a W3C ajánlása.

Az XSD-t úgy tervezték, hogy kifejezze azokat a szabályokat, amelyeket egy XML-dokumentumnak követnie kell. De a legérdekesebb számunkra az, hogy az XSD-t XML dokumentumokat feldolgozó szoftverek fejlesztésére tervezték. Lehetővé teszi, hogy programozottan ellenőrizzük egy XML-dokumentum helyességét.

Az XML-sémát tartalmazó fájlok .xsd kiterjesztéssel rendelkeznek. Az XML-séma megtervezése túlmutat ennek a leckének a hatókörén, ezért most legyen tudatában annak, hogy fennáll a lehetőség.