Metin biçimleri neden gereklidir?

Metin biçimleri, hem programlar hem de insanlar tarafından oluşturulup işlenebildikleri için bilgi depolamak için uygundur.

Metin dosyaları (metin biçimindeki dosyalar) çok çeşitli metin düzenleyicilerde açılabilir, okunabilir ve düzenlenebilir.

Çoğu program, biçim sayılar ve ikili (evet/hayır) değerler içeriyor olsa bile metin tabanlı yapılandırma dosyaları kullanır.

Bu, metinden dahili bir formata ve tersine dönüştürme ihtiyacı nedeniyle programları biraz daha karmaşık hale getirir, ancak programın kendisinde bir yapılandırma aracı kullanmadan yapılandırmayı manuel olarak düzenlemeyi mümkün kılar.

XML şimdi nerede kullanılıyor?

XML, BT'nin çeşitli alanlarında kullanılmaktadır. Yapılandırma dosyaları (program ayarlarıyla birlikte) veya programlar arasında veri aktarmak için kullanılan dosyalar olabilir. Java'da en yaygın kullanım durumlarından biri, bir derleme otomasyon aracı olan Maven'i yapılandırmaktır.

Bir XML belgesinin yapısı

Bir XML belgesinin fiziksel ve mantıksal yapıları ayrı tutulur. Fiziksel yapı açısından, belge diğer varlıklara atıfta bulunabilen varlıklardan oluşur.

Tek kök öğe, belge varlığıdır. Varlık, bir belgedeki en küçük parçadır. Tüm varlıkların bir adı vardır ve karakterler içerir.

Buna karşılık, karakterler iki kategoriden birine aittir: karakter verileri veya işaretleme.

İşaretleme şunları içerir:

  • eleman sınırlarını gösteren etiketler;
  • öznitelikleri de dahil olmak üzere beyanlar ve işleme talimatları;
  • varlık referansları;
  • yorumlar;
  • CDATA bölümlerini saran karakter dizileri.

Mantıksal olarak, belge öğelerden, yorumlardan, bildirimlerden, varlık referanslarından ve işleme yönergelerinden oluşur. İşaretleme, bu yapının tamamını bir belgede oluşturmak için kullanılır.

Bir belgeyi oluşturan tüm parçalar, bir prolog ve bir kök öğeye bölünmüştür. Kök öğe, bir XML belgesinin zorunlu, temel parçasıdır, prolog ise hiç bulunmayabilir. Kök öğe iç içe geçmiş öğelerden, karakter verilerinden ve yorumlardan oluşabilir. Bir belgenin öğeleri doğru şekilde iç içe yerleştirilmelidir: başka bir öğenin içinde başlayan herhangi bir öğe aynı zamanda o öğenin içinde bitmelidir.

İşaretleme sembolleri

İşaretleme her zaman < ile başlar ve > ile biter .

< ve > (açılı ayraçlar) ve & ( ve işareti) sembolleri özel bir rol oynar. Köşeli parantezler, öğelerin sınırlarını, işleme yönergelerini ve diğer bazı dizileri gösterir. Ve işareti, metni varlıklarla değiştirmemize yardımcı olur.

XML bildirimi

Bir XML bildirimi, belgeyi yazmak için kullanılan dilin sürümünü belirtir. XML belirtimi, belge içeriğinin doğru yorumlanması dilin sürümüne bağlı olduğundan, bir belgenin bir XML bildirimi ile başlatılmasını söyler.

Dilin ilk sürümünde (1.0), bu bildirim isteğe bağlıydı, ancak sonraki sürümlerde zorunludur. Eksik bildirimin sürüm 1.0 olduğu varsayılır. Bildirim ayrıca belge kodlaması hakkında bilgi içerebilir.

Örnek:

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

Etiketler

Etiket, bir öğenin adını içeren bir işaretleme yapısıdır. Başlangıç ​​etiketleri ve bitiş etiketleri vardır. Başlangıç ​​ve bitiş öğelerini birleştiren boş öğe etiketleri de vardır.

Örnekler:

  • Başlangıç ​​etiketi: <tag1>

  • Bitiş etiketi: </tag1>

  • Boş öğe etiketi: <empty_tag1 />

Öznitellikler

XML öğelerinin diğer bir kısmı niteliklerdir. Bir öğenin birden çok benzersiz özelliği olabilir. Nitelikler, bir öğe hakkında daha fazla bilgi belirtmemize izin verir. Veya daha doğrusu nitelikler, öğelerin özelliklerini tanımlar.

Nitelik her zaman bir ad-değer çiftidir:

isim = "değer"

Bir etiketteki nitelik örneği:

<tag1 name = "value">öğe</tag1>

Bir özelliğin değeri çift tırnak ( " ) veya tek tırnak ( ' ) içine alınmalıdır . Nitelikler yalnızca başlangıç ​​etiketlerinde ve boş öğe etiketlerinde kullanılır.

Beş özel karakterden kaçış (<, >, ', ”, &)

Açıkçası, < , > ve & sembolleri karakter verilerinde ve özellik değerlerinde olduğu gibi kullanılamaz. Onları temsil etmek için özel kaçış dizilerine ihtiyacınız var. Öznitelik değerleri içinde kesme işaretleri ve tırnak işaretleri yazarken özel diziler de kullanılır:

Sembol Yenisiyle değiştirme
< <
> >
& & amp;
' '
" "

Ayrıca \ karakterini yazmak için \\ kullanmanız gerekir .

CDATA bölümü

Bir CDATA bölümü, mantıksal bir metin birimi değildir. Bu tür bir bölüm, XML sözdiziminin belgeye karakter verilerini yerleştirmemize izin verdiği yerlerde oluşabilir.

Bölüm <![CDATA[ ile başlar ve ]]> ile biter . Bu işaretleme bitleri arasına karakter verileri yerleştirilir ve < , > ve & sembolleri doğrudan biçimleriyle kullanılabilir.

Yorumlar

Yorumlar karakter verisi sayılmaz. Yorum <!-- ile başlar ve --> ile biter . Karakter dizisi -- bir yorum içinde kullanılamaz. Ayrıca, bir yorumun içindeki ve işareti karakteri biçimlendirmeyi göstermez.

Örnek:

<!-- bu bir yorum -->

İsimler

XML'de, Unicode karakter tablosundaki tüm adlar yalnızca harfleri, Arap rakamlarını, noktaları, iki nokta üst üsteleri, kısa çizgileri ve alt çizgileri içerebilir. Adlar bir harf, iki nokta üst üste veya alt çizgi ile başlayabilir. Bir adın XML dizesiyle başlayamayacağını unutmayın .

Örnek

Bir Java sınıfına ve o sınıfın bir nesnesine bakalım. Daha sonra nesneyi XML formatında serileştirmeye çalışacağız. Sınıf kodu:

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
}

ve nesnelerin oluşturulması:

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

Biri koleksiyon olan 4 alan içeren bir Java nesnesinin geçerli bir XML temsilinin bir örneğini burada bulabilirsiniz (yukarıdaki Java koduna bakın):

<Kitap>
  <title>Favori Kitabım</title>
  <yazar>Amigo</author>
  <pageCount>999</pageCount>
 <chapters>
    <chapters>Bölüm 1</chapters>
    <chapters>Bölüm 2</chapters>
    <chapters>Bölüm 3</chapters>
    <chapters>Bölüm 4</chapters>
    <chapters>Bölüm 5</chapters>
    <chapters>Bölüm 6</chapters>
 </chapters>
</Book>

XML şeması

Bir XML şeması, bir XML belgesinin yapısının açıklamasıdır. Karşılık gelen belirtim (XML Şema Tanımı veya XSD) bir W3C önerisidir.

XSD, bir XML belgesinin uyması gereken kuralları ifade etmek için tasarlanmıştır. Ancak bizim için en ilginç olanı, XSD'nin XML belgelerini işleyen yazılımlar geliştirirken kullanılmak üzere tasarlanmış olmasıdır. Bir XML belgesinin doğruluğunu programlı olarak kontrol etmemizi sağlar.

XML şeması içeren dosyalar .xsd uzantısına sahiptir. Bir XML şeması tasarlamak bu dersin kapsamı dışındadır, bu nedenle şimdilik sadece olasılığın var olduğunun farkında olun.