Veri Tanımı XML kullanarak. Kök elemanı oluşturma. World Wide Web'de XML Haritalama

  • 21.05.2019

20. Açıklama Diller Kime XML

DTD şemaları. DTD şemalarının dezavantajları. XDR şeması. XDR şemalarının elemanları ve nitelikleri.

Özel bir anlamı olan ve belgenin içeriğini tanımlamaya yardımcı olan kendi etiketlerinizi yaratma fikri, kendi başına sadece harika. Ancak, her kullanıcı kendi tanımlarını oluşturabilirse, bunları nasıl tanıyabilir? Bu amaçla, XML spesifikasyonunda, bu "amatörler" etiketlerini tanımlamak için şemalar kullanılır. Onlar için gereklidirler:

    İşaretlemenin ne olduğunu açıklayın;

    İşaretlemenin tam olarak ne anlama geldiğini açıklayın.

Şemaları tanımlayan en iyi bilinen diller aşağıdakilerdir:

    DTD (Belge Tipi Tanım), başlangıçta SGML belge yapısının bir açıklama dili olarak kullanılan bir belge türü tanımdır.

    XDR (XML verisi azaltıldı) - Internet Explorer 4 ve 5 versiyonlarında desteklenen Microsoft tarafından geliştirilen XML şema diyagramı.

    XML şeması veya sadece XSD (XML şema tanımı dili) - 2001'den beri W3C konsorsiyum önerisi.

İlk ikisini daha ayrıntılı olarak düşünün. Üçüncü Şema Açıklama Dili laboratuar çalışmasında 11 göz önünde bulundurulur.

DTD şeması

DTD şeması, varlığını, siparişi ve öğelerin konumunu ve özelliklerini XML belgesinde belirten bir belge işaretleme şablonu sağlar.

DTD'nin bir parçası olarak, XML belgesinin içerik modeli aşağıdaki gibi tanımlanabilir:

Belgenin her bir elemanı türlerinden birine sahip olabilir:

Sözdizimi

Yorum Yap

Yalnızca metin verilerini içerir

Diğer elementler

Sadece bağlı ortaklıkları içerir

Karışık

Metin verilerinin ve bağlı ortaklıkların bir kombinasyonunu içerir

Hiçbir şey içermez

Belge etiketlerinin talimatındaki nitelikler, sözdizimini kullanarak ayrı olarak açıklanır:

element_name_alect_name_ (Tip) value_po_u

…………………………………………………………………………………...

element_name_alect_name_name (Tip) değeri

Aynı zamanda, DTD'deki nitelik üç türden birine sahip olabilir:

  • İşaretli nitelik

    Transfer ile öznitelik

Öznitelik türüne ek olarak, modası da ayarlanabilir:

Bazı mesajı tanımlayan bir eleman için bir dize tipi niteliklerinin örnek açıklaması olarak düşünün:

number CDATA #Required.

tarih CDATA #Required.

cDATA'dan #Fixed

durum cdata #implied\u003e

Bu eleman listeleme ile öznitelikler içeriyorsa, açıklamaları, örneğin aşağıdaki gibi görünebilir:

numara kimliği #Required.

cDATA'dan #Required.

uyarı (düşük | normal | acil) "normal"\u003e

Elemanın belirgin özellikleri dört tip olabilir:

Ve Son olarak, DTD'de, aşağıdaki sıra girişlerinin aşağıdaki göstergelerini kullanabilirsiniz:

Sembol

Misal

Açıklama

Liste öğelerinin sıralı kullanımı

Liste üyelerinden birini kullandı

Bir ve sadece bir element kullanılır

İsteğe bağlı kullanım (0 veya 1 kez)

Bir veya birkaç kez kullanılır

Sıfır veya birkaç kez kullanılır

Örnek olarak, bir e-posta posta kutusunun yapısını tanımlayan bir DTD şeması veriyoruz:

Bu şemayı tatmin eden kaynak XML belgesi, örneğin aşağıdaki gibi görünebilir:

[email protected].

[email protected].

Yeniden:

[email protected].

[email protected].

Hatırlatmak.

[email protected].

Bana toplantı hakkında hatırlat.

DTD şemasını içeren dosyaya harici referansın belirtildiği belgenin 2. satırını belirtin.

Prensip olarak, DTD bir XML belgesinde kullanmanın iki yolu kabul eder.

İç Şema Duyurusu:

Dış Şema Duyurusu:

Sonuç olarak, DTD şemalarının aşağıdaki dezavantajlarını belirtiriz:

    XML örnekleri değildir. Tamamen farklı bir dilin çalışmasını gerektirir.

    En basit metin verileri hariç, veri türleri üzerinde kontrol sağlamayın.

    XML örnekleri değildir, böylece kolayca genişletilemezler veya diğer İşaretleme dillerine dönüştürülemezler - HTML veya DHTML.

    XML ad alanlarına destek sağlamayın.

XDR şeması

XML-Veri - Microsoft tarafından önerilen şemaların açıklamasının tam adı ve XML-DataReduced, tam tavsiyenin "kısım "dur. XDR şeması bir XML örneğidir, yani. Tüm XML syntactik kurallarına ve standartlarına uygundur.

Şemayı kullanarak belge düzeyinde veri denetlerini uygulayarak, işlem üreten ve alma uygulamaları, maksimum hız sağlamak için optimize edilebilir. Eşleşen alanlar ve doğru kayıtlar XML örnekleri seviyesinde kontrol edilir.

XDR şemasında kök elemanı her zaman şema elemanıdır:

İsim \u003d "Schem Name" xmlns \u003d "urn: Schemas-Microsoft-COM: XML-Veri"

xMLNS: DT \u003d "URN: Schemas-Microsoft-Com: DataTypes"\u003e

<-- Объявления других элементов -->

ElementType öğesinin sözdizimi var:

içerik \u003d "(boş | Texonly | Eltonly | Karışık)"\u003e

dT: "DataType" yazın

model \u003d "(Açık | Kapalı)"

sipariş \u003d "(Biri | Seq | Birçok)"

ElementType elemanı aşağıdaki özelliklere sahip olabilir:

Öznitelik adı

Açıklama

Öğe adı

Veri öğesinin türü

Değerler alabilir:

Açık - izin verilen kullanmak Şemada tanımlanmayan unsurlar

Kapalı - şemada tanımlanmayan unsurları kullanmak yasaktır

XML örneğinde çocuk elemanlarının sırası. Geçerli değerler:

bir - bir belgenin varlığını varsayar

birçok - herhangi bir sıradaki herhangi bir sayıda öğe

sEQ - öğeleri kesinlikle belirtilen bir sırada belirtilir.

elementType için çocuk elemanlarının kalitesi aşağıdaki gibi kullanılabilir:

Öğe adı

Açıklama

Bir çocuk elemanı duyurur

ElementType öğesi açıklaması sağlar

Veri türü ElementType öğesi sağlar

Elementlerin sırasını belirler

Özniteliği tanımlar

Attributype çocuk öğesi bilgilerini tanımlar

Öznitelik bildirimi için sözdizimi kullanılır:

varsayılan \u003d "Varsayılan değer"

dT: Tip \u003d "İlkel-Tip"

dT: Değerler \u003d "sayılmamış değerler"

gerekli \u003d "(Evet | Hayır)"

Buna karşılık, bir attributetype elemanının nitelikleri olabilir:

Değer vermek

Açıklama

Varsayılan değer

Aşağıdaki türlerden biri:

varlık, varlıklar, numaralandırma, id, idref, nmtoken, nmtokens, notation, string

Geçerli değerler

Öznitelik adı

Açıklamada bir niteliğin zorunlu varlığını gösterir.

Öznitelik öğesini tanımlayan sözdizimi şöyle görünür:

varsayılan \u003d "Varsayılan değer"

tip \u003d "öznitelik türü"

ve olası değerleri şöyle olabilir:

Değer vermek

XML (Genişletilebilir İşaretleme Dili), keyfi bir talimat grubunu kullanarak farklı türlerin bilgilerini çekmenize izin veren yeni bir SGML türev belge İşaretleme dilidir. Yeni teknolojiyi kullanan çevrimiçi uygulama geliştiricileri, XML belgelerini, ekranlarını istemci tarafında oluşturma, işleme koyma sorunlarıyla ilgili özel sorunları bulabilir. Bu makalede, bir XML belgesine ihtiyaç duyduğunuz ve pratik örneklerde, bazı basit, ancak şimdiye kadar, ne yazık ki, işlemi için biraz açıklanan mekanizmalarla gösterilen kısa bir fikir vermektedir.

XML nedir

Günümüzde, XML, bu dili resmi bilgileri tanımlamak için bu dili kullanan sıradan "tek bilgisayarı" programlarına iletilen devasa bilgilerle iletilen devasa bilgilerden geleneksel bilgilere sahip olan herhangi bir uygulamada XML kullanılabilir. Etrafımızdaki Bilgi Dünyasına dikkatli bir şekilde bakınız, XML tarafından kullanılabilecek yapılandırılmış bilgilerin oluşturulması ve işlenmesi ile ilgili birçok görev seçebilirsiniz:

  • Her şeyden önce, bu teknoloji, karmaşık bilgi sistemlerinin geliştiricileri için faydalı olabilir, çeşitli yapılarda bilgi akışıyla ilgili çok sayıda uygulama ile. Bu durumda, XML belgeleri, büyük bir programın bireysel bileşenleri arasında bilgi alışverişinde bulunmak için evrensel bir formatın rolünü yürütür.
  • XML, yeni bir kaynak açıklama dili için temel bir standarttır, bu da gerekli bilgileri arayışı ile ilgili birçok sorunu kolaylaştırmayı, ağ kaynaklarının içeriğinde kontrolün sağlanması, elektronik kütüphaneler, vb.
  • XML dili, keyfi bir türü tanımlamanızı sağlar ve kimyasal, matematiksel, fiziksel formüller, tıbbi tarifler, müzik kayıtları vb. Gibi uzmanlaşmış bilgileri temsil etmek için kullanılır. Bu, XML'nin, standart olmayan bilgileri web'de dağıtmak için HTML'ye güçlü bir ek olarak hizmet edebileceği anlamına gelir. Belki de yakın gelecekte, XML, HTML'yi tamamen değiştirecek, en azından bu iki dilleri entegre etme girişimleri zaten yapılır (şartname).
  • XML belgeleri, üç yetiştirilmiş sistemlerde ara veri formatı olarak kullanılabilir. Genellikle, uygulamalar ve veritabanı sunucuları arasındaki etkileşim şeması, verilere erişmek için kullanılan belirli bir DBMS ve SQL lehçesine bağlıdır. Sorgu sonuçları bazı evrensel metin biçiminde sunulursa, DBMS bağlantısı, uygulama için "şeffaf" olacaktır. Buna ek olarak, bugün yeni sorgu veritabanlarının XQL veritabanlarının özellikleri, W3C'nin göz önünde bulundurularak, gelecekte SQL'ye bir alternatif olabilir.
  • XML belgelerinde yer alan bilgiler değişebilir, istemci makinesine iletilir ve parçalarda güncellenir. Spesifikasyon tarafından geliştirilen XLink ve Xpointer spesifikasyonu, yuvalama ve öznitelik değerleri de dahil olmak üzere bireysel belge öğelerine atıfta bulunur.
  • Stil Tablolarını Kullanma (XSL), XML belgelerinin ekranında bağımsız bir görüntüleme cihazı vermenizi sağlar.
  • XML, yapılandırılmış verileri tek bir formatta saklamak ve işlemek için geleneksel uygulamalarda kullanılabilir.

XML belgesi, veri öğelerinin ve yuvalama öğelerinin, belgenin yapısını ve içeriğinin yapısını belirleyen özel işaretleyiciler kullanılarak oluşturulduğu normal bir metin dosyasıdır. XML belgelerinin ana avantajı, nispeten basit bir oluşturma ve işleme yöntemine sahip (normal metin herhangi bir test işlemcisi tarafından düzenlenebilir ve standart XML analizleri tarafından işlenebilir), "Bilgisayarları" anladığı yapılandırılmış bilgiler oluşturmanıza izin verir.

XML belgesi nasıl oluşturulur?

En basit durumda belgenin bir XML'ini oluşturmak için, normal bir metin düzenleyiciden başka bir şeye ihtiyacınız olmayacak (birçok web tasarımcısına göre, web sayfaları oluşturmak için en iyi aracı). İşte normal bir not defteri yerine kullanılan küçük bir XML belgesine bir örnektir:

Önemli İş Toplantısı S ile tanışmalıyız. Ivan Ivanovich, onu telefonla aradıktan sonra 123-12-12 ... Ev yapmak 124-13-13

Kendi İşaretleme dilinizi oluştururken, elemanların herhangi bir adlarını icat edebilirsiniz (neredeyse her şey, çünkü izin verilen karakterlerin listesi sınırlıdır ve içeride bulunur) kullanımlarının bağlamına karşılık gelir. Örneğimizde, bir günlük yapısı oluşturmanın çok sayıda yoldan sadece biri verilir. Bu, XML türetilmiş dillerin esnekliği ve genişlemesidir - belgenin yapısı hakkındaki fikirlerine göre, "sinek üzerinde" geliştiricisi tarafından yaratılır ve daha sonra bir par üzerinde evrensel görüntüleme programları tarafından kullanılabilecekleridir. Başka bir XML türetilmiş diller, çünkü Sözdizimsel analiz için gerekli tüm bilgiler belgenin içindedir.

Yeni bir format oluşturma, "XML" üzerine yazılan belgelerin prensipte olamayacağı gerçeğini göz önünde bulundurmanız gerekmektedir - her durumda, belgenin yazarları, XML standardına göre kullanılır (XML olarak adlandırılır) türev) dil, ama XML'nin kendisi değil. Bu nedenle, oluşturulan dosyayı kaydederken, bunun için bir uzantı seçebilirsiniz (örneğin, NotemL).

XML, belirli bir tür belgeleri ve belirli bir uygulama için gerekli olan yapı oluşturmak için kullanılabilir. Bununla birlikte, dilin kapsamı geniş çapta genişse ve çok sayıda geliştirici için ilgi çekmeye başlarsa, şartnamesi W3C'de dikkate alınabilir ve resmi bir öneri olarak bir konsorsiyum tarafından onaylanan tüm paydaşları kabul ettikten sonra sunulabilir. .

Yeni şartname görünme işleminin çok uzun ve karmaşık olduğu belirtilmelidir. Standart olmadan önce W3C tarafından sunulan herhangi bir belge birkaç aşamayı geçer. Birincisi, gelişimine dahil olan çeşitli şirketlerden gelen dilek ve öneriler, bir tür niyet (Not), bir tür niyet (Not) notu formunda verilir. Bu tür belgelerde belirtilen bilgiler yalnızca konsorsiyumun üyeleri tarafından tartışma amaçlıdır ve kimse bu yorumların daha sonra bir öneri olacağını garanti vermez.

Belgenin tanıtımının bir sonraki aşaması, ilgili olarak, ilgili olarak yapılan özelleştirilmiş çalışma grubu (çalışma grubu), bu fikirdeki ilgili şirketlerin temsilcilerini içeren özel olarak oluşturulan çalışma grubu (çalışma grubu) olan şartnamenin çalışma sürümüdür. Bu belgede yapılan tüm değişiklikler, www.w3.org konsorsiyum sunucusunda yayınlanacak ve çalışma sürümü bir öneride bulununcaya kadar, geliştiricilere yalnızca "rehberlik bir yıldız" için hizmet verebilir, şirketin planlarını kontrol edebileceği Ancak, yazılım geliştirirken kullanmamalıdır.

Tarafların tüm önemli konularda hemfikirdiği ve belgedeki önemli değişiklikler üzerinde anlaşılan tarafların daha tanıtıldığı durumunda, çalışma sürümü önerilen öneri olur ve çalışma grubunun üyeleri tarafından oylama zaten W3C'nin resmi önerileri olabilir, bu durum www standart.

XML jeneratörleri

XML belgeleri, bir uygulamadan diğerine bilgi iletmek için ara format olarak hizmet verebilir (örneğin, bir veritabanı sorgusu sonucu), böylece içeriği bazen programlar tarafından otomatik olarak oluşturulur ve işlenir. Her zaman bir XML belgesi manuel olarak oluşturulmalıdır.

Örneğin, görevimiz bazı oluşan olayların kaydı için bir depolama biçimi oluşturmak (günlük dosyası). En basit durumda, kendimizi kaynaklarımıza başarılı ve hatalı talepleri düzeltmemizi kısıtlayabilirsin - böyle bir belgede olayın zamanı, sonucu (şans / hata), kaynağın IP adresi hakkında bilgi sahibi olmalıdır. Sorgu, kaynak URI ve sonuç kodu.

XML belgemiz şöyle görünebilir:

195.151.62.18 Almak. / Özlemek / 200 195.209.248.12 Almak. /Soft.htm. 200

Belgenin yapısı oldukça basittir - bu durumda kök, günlük elemanı, meydana gelen her olay, olay elemanında sabitlenir ve öznitelikleri (tarih - saat ve sonuç - olay türü) ve dahili elementler kullanılarak açıklanır (yöntem - Erişim yöntemi, ip-adres kaynağı, URL'den - istenen kaynak, yanıt bir cevap kodudur). Bu belgenin üretimi, örneğin, sorgu isteklerinin kimlik doğrulama modülünü ve Kayıt Veri İşleme Programını (Günlük Görüntüleyici) kullanılarak devreye girebilir.

DTD nedir?

Öyleyse, bir XML belgesi oluşturduk ve bu konuda kullanılan etiket kümesinin bilgimizle herhangi bir manipülasyon yapmayı mümkün kıldığından emin olduk. Bu durumda, yeni dilimizin kurallarını onaylamak için, yani. İzin verilen elemanların listesi, olası içerikleri ve nitelikleri, DTD - tanımlar oluşturmalıyız (makaleyi yazma sırasında, XMLDO belgeleri için şartname henüz onaylanmadı ve DTD, gramer tanımlamanın tek standart yoludur).

XML belgemiz için küçük bir örnek:

Bu dosyayı log.dtd adının altına kaydedin ve XML belgesinde yeni bir satırı açın:

Artık belgeyi işleme koyarken doğrulama XML analizörü, elemanları ve özniteliklerini DTD notasyonlarımızda nasıl gösterildiğine ve iç yapının ihlali ("anlambilimini belirler" durumunda belirlenmesi prosedürü ile tedavi edilecektir. belge) bir hata mesajı vermek için.

Ad alanları nedir?

Daha önce de belirtildiği gibi, XML kullanmanın tüm cazibesi, kendi etiketlerini icat etme olasılığına göre, isimleri en çok tam olarak hedefe karşılık gelir. Ancak, insanların fantezi ve kelime hazinesi sınırsız değildir, bu yüzden elementlerin isimlerinin verilerinin başkası tarafından kullanılmayacağının kesinlikle hiçbir garantisi yoktur. Uygulamanız yalnızca kendi XML belgeleri tarafından işlendiği sürece, hiçbir sorun ortaya çıkmaz. Ancak aynı belgenin aynı anda birkaç işleyiciye bilgi içermesi oldukça mümkün. Bu durumda, bazı elementlerin adları veya öznitelikleri, XML analizöründe bir hataya veya belgenin yanlış bir şekilde gönderilmesine neden olacaktır. Örneğin, olgumuzda, olay elemanı diğer olayları kaydetmek ve başka bir uygulama tarafından işlenen iyi bir şekilde kullanılabilir.

Bu durumu düzeltmek için, elementlerin benzersiz isimlerini ve özelliklerini "eklemek", her zamanki adlarına "eklenmesi", bazı evrensel olmayan bazı öneki tanımlamalıyız. Bunun için, ad alanları mekanizması uygulanır (isim alanları Ocak 1999'da W3C tarafından resmen onaylandı ve bugün XML standardının bir parçasıdır). Bu şartnameye göre, etiketin "eylem alanını" belirlemek (aslında, bu terim, XML'de geçerli olmayan geleneksel programlama dillerinde yaygın olarak kullanılmaktadır, çünkü "alanın" inşa edilebileceği bir set olarak, içinde Yapı Yapılandırılmış XML Belgesi) Belge Analizörünün neyle ilgili hangi isim grubunu belirleyebileceği unsurun adını tanımlayan benzersiz bir özellik tanımlamak gerekir (ad alanı tanımlayıcıları her iki öğenin benzersiz isimlerini tanımlamak için nasıl kullanılabilir) Öznitellikler). Son örneğimizde böyle yapılabilir:

195.151.62.18

Almak.

/ Özlemek /

200

195.209.248.12

Almak.

/Soft.htm.

200

Ad özniteliğinin benzersizliği, bazı evrensel kaynak tanımlayıcılarının değeri (örneğin, URI veya ISBN) olarak kullanılmasını sağlar.

Bu standartta bulabileceğiniz ad alanının kullanımı hakkında tam bilgi. Gelecekte, örnekleri basitleştirmek için, ad alanı olacağız - açıklamaları atlar.

Araçlar

XML belgelerinin tedavisi

Bugün XML teknolojisini web'ye tanıtmasındaki ana caydırıcı, bu format için bu formatın tümü için tam destek eksikliğidir - istemci tarafında en sık kullanılan programlar. Mevcut durumdan gelen çıktı, sunucu tarafının, mevcut herhangi bir XML analizörünü kullanarak XML belgelerinin işlenmesinde yapıldığı bir seçenek olabilir, sunucuda gerekli bilgileri oluşturabilir ve istemciye normal bir HTML belgesi gönderebilirsiniz. Bununla birlikte, bu yöntem, elbette, daha az esnektir ve yalnızca yapılandırılmış bilgileri saklamak için XML teknolojisini kullanmanıza izin verir, ancak istemci tarafındaki dinamik değişikliği için değil.

Ağustos 1997'de RFC 2376'da MIME türleri XML kaynakları için onaylandı: Metin / XML ve Uygulama / XML. Bu nedenle, XML belgeleri HTTP ile iletilebilir ve görüntüleme programını ve sıradan HTML sayfalarını görüntüleyebilir. Bunu yapmak için, Web Sunucusu yapılandırmasını buna biraz (Apache'de) değiştirmeniz gerekir (Apache'de - Mime. "Metin / XML XML DDT" dosyasına ekleyin ve istemci tarafında, stil tablolarını veya javascript'i destekleyen bir tarayıcı var. Bugün, bu tür tarayıcılar, XML 1.0 özelliklerini ve XSL tarzı tablolarını destekleyen ilk tarayıcı olan Microsoft Internet Explorer 5'dir; Konsorsiyum tarafından sunulan AMAYA Brouser, özellikle test amaçlıdır () ve hemen hemen tüm W3C standartlarını desteklemektedir. Netscape Navigator'un gelecekteki sürümlerinde XML desteği de planlanmaktadır.

Nesne Model Dom Belgesi

XML belgelerinin içeriğine en güçlü arayüzlerden biri DOM'dur.

Nesne Modeli XML belgeleri, iç yapısının bir dizi belirli nesneler biçiminde bir gösterimidir. Kolaylık sağlamak için, bu nesneler belirli bir ağaç şeklindeki veri yapısına düzenlenir - belgenin her bir elemanı ayrı bir dala ve tüm içeriğine, iç içe geçmiş bir eleman, yorumlar, CDATA bölümleri, vb. Şeklinde bağlanabilir. . Bu yapıda alt dosyalarla görünüyor. Çünkü Herhangi bir doğru beslenende, XML belgesi mutlaka ana elemanı tanımlar, ardından tüm içerikler bu ana elemanın bu durumda belge ağacının kökü olarak adlandırılması olarak kabul edilebilir. Bir sonraki XML belge parçası için:

mETİN. mETİN.

Belge yapısının nesne temsili, geliştiriciler için yeni bir şey değildir. HTML sayfalarının içeriğine komut dosyalarında erişmek için, senaryolarda nesne yönelimli bir yaklaşım kullanılır, - Java script veya VBScript için kullanılabilir olan HTML belge elemanları, uygun nesneleri kullanarak oluşturulabilir, değiştirilebilir ve görüntülenebilir. Ancak listeleri ve yöntemleri sürekli değişiyor ve tarayıcı türüne ve dil sürümüne bağlıdır. Bağımsız bir programlama dili ve belge türü sağlamak için, W3 konsorsiyumu içindeki yapılandırılmış bir belgenin içeriğine arabirim erişimi, DOM seviye 1 nesne modelinin özelliklerini belirtir ve resmen onaylandı.

DOM, evrensel platformun ve belgelerin içeriğine yazılımdan bağımsız erişimin özellikleridir ve işleyicileri için sadece bir tür API'dir. DOM, herhangi bir HTML veya XML belgesinin bir nesne modelini oluşturmanın, istenen parçaları arayabileceğiniz, oluşturabileceğiniz, silme, silme ve değiştirebileceğiniz bir nesne modeli oluşturmanın standart bir yoludur.

DOM spesifikasyonundaki XML belgelerinin içeriğine erişimin arayüzlerini tanımlamak için, platform bağımlı bir IDL dili uygulanır ve kullanım için bazı belirli programlama diline "tercüme etmesi" gerekir. Bununla birlikte, analizörlerin yaratıcıları kendileri bununla meşgul, arayüzleri uygulama yöntemi hakkında hiçbir şey bilemiyoruz - DOM uygulama programlarının geliştiricilerinin bakış açısına göre, belirli yöntemler ve özelliklere sahip bir dizi nesneye benziyor. Bir sonraki bölümde, Java script ve VBScript komut dosyalarından elde edilen Microsoft Internet Explorer 5 nesne modelini kısaca göz önünde bulundururuz.

Doğru İşaretlemeye Giriş

Xml anlamına geliyor Genişletilebilir İşaretleme Dili, Üzerinde odaklanarak İşaretleme. (İşaretleme). Metin oluşturabilir ve çerçeveleme etiketlerini kullanarak yerleştirebilir, her kelimeyi, teklifi veya parçayı tanımlanabilir, bilgilere göre sıralanabilir. Oluşturduğunuz dosyalar veya belgenin örnekleri, elementlerden (etiketler) ve metinlerden oluşur ve öğeler, kağıt üzerinde okurken veya hatta elektronik biçimde işleme koyarken belgeyi doğru şekilde anlamaya yardımcı olur. Daha fazla tanımlayıcı elemanlar, belgenin daha fazla kısmı tanımlanabilir. İşaretlemenin varlığının ilk günlerinden itibaren, avantajlarından biri, bilgisayar sisteminin kaybı durumunda basılmıştır. veri Etiketler sayesinde hala okunaklı kalır.

İşaretleme dilleri, şirketler ve devlet kurumları tarafından oluşturulan ilk formlardan, standart genelleştirilmiş İşaretleme Dili (SGML), HyperText Markup (HTML) ve sonuçta XML'den önce yoldan geçti. SGML karmaşık görünebilir ve HTML (aslında, ilk önce sadece bir element kümesidir) bilgiyi tanımlamak için yeterli değildi. XML, İşaretleme dilini genişletmek için kullanımı kolay ve uygun şekilde tasarlanmıştır.

XML'de, veri parçalarını doğru bir şekilde temsil etmenizi sağlayan kendi öğelerinizi oluşturabilirsiniz. Belgeler sadece paragraflara ve başlıklara ayrılamaz, aynı zamanda belgedeki herhangi bir parçayı da tahsis edebilir. Etkin bir şekilde, öğelerinizin nihai listesini belirlemek ve buna bağlı kalmak gerekir. Elementler Belge Türü (DTD) belge türünde (DTD) veya aşağıda kısaca tartışılacak olan şemada tanımlanabilir. Usta olduğunuzda ve XML kullanmaya başladığınızda, gerçek dosyalar oluşturarak öğelerin isimlerini denemek için korkmayın.

XML belgesi oluşturma

Daha önce de belirtildiği gibi, XML dosyaları metin ve işaretlemeden oluşur. Metnin çoğu, metnin etiketlerle çevrili olduğu elemanlara yerleştirilir. Örneğin, diyelim ki, XML biçiminde bir yemek kitabı oluşturmanız gerekir. Denilen bir tarifimiz var Sundae dondurma.XML'ye dönüştürülecek. Tarifin adını yerleştirmek için, metnini başlayan ve etiketlerle biten öğeye girin. Bu elemanın alıcı adı olarak adlandırılabilir. Öğenin ilk etiketini işaretlemek için, adını köşe parantez içine koyun.<>), böyle: . Sonra metin dondurma Sunlara tanıtıyoruz. Metinden sonra, köşe parantez içindeki elemanın adı olan bir kapanış etiketi koyacağız, ayrıca element adından önce elemanın (/) sonlandırılmasının eksikliğini şöyle: . Bu Etiketler Formu elemanMetnin ve hatta diğer unsurların girilebileceği.

Öğelerin isimleri, hem bireysel belgeler hem de belge grupları için oluşturulabilir. İhtiyaçlarınıza göre, öğeler için saygı duyulması gereken kuralları belirleyebilirsiniz. Elementler kesinlikle özel veya yeterince yaygın olabilir. Kurallar, her bir elemana ne kadar izin verileceğini de belirlemelidir. Katı, özgür veya ara olabilirler. Sadece belgenizin bu bölümlerini tanımlayan elemanlar oluşturun, bu sizin görüşünüzde önemlidir.

Bir XML dosyası oluşturmaya başlayın

XML belgesinin ilk satırı XML bildirimi olabilir. Dosyanın bu isteğe bağlı kısmı, otomatik alet ve kişilerin dosyayı bir XML olarak tanımalarını ve bir SGML veya başka bir işaretleme biçimini tanımalarına yardımcı olabilecek bir XML dosyası olarak belirler.

Beyanname tıpkı gibi görünebilir veya XML sürümünü ekleyin ( ) ve hatta karakterleri kodlama, örneğin, Unicode için. Bu bildirim dosyanın başlangıcında olması gerektiğinden, küçük XML dosyalarını daha büyük bir dosyaya birleştirmeyi planlıyorsanız, bu isteğe bağlı öğenin atlamak için daha iyidir.

Kök elemanı oluşturma

Kök elemanın ilk ve kapanış etiketleri, XML belgesinin tüm metnini çevreler. Dosyada sadece bir kök eleman olmalı ve bu için gerekli "kapak" olmalıdır. Örneğin fragmanı, burada kullandığım, kök elemanı ile birlikte gösterilir. (yemek tarifi). (Tam XML dosyası verilmiştir.)

Liste 1. Kök elemanı

Belgeniz oluşturulduğunda, metni ve ek etiketleri yerleştireceksiniz. ve .

Elementlerin İsimleri

Kayıt olan etiketlere uygunluk

XML oluştururken, başlangıç \u200b\u200bve bitiş etiketi kayıtları çakışmalıdır. Aksi takdirde, XML kullanırken veya görüntülenirken bir hata mesajı alabilirsiniz. Örneğin, Internet Explorer, kayıtların uyumsuzluğu durumunda metin göstermez. Bunun yerine, ilk ve son etiketlerin anlaşılmasıyla ilgili mesajları görüntüler.

Yani, bir kök elemanımız var . XML'de, elementlerin isimleri ilk olarak seçilir ve ardından bu adlara göre, ilgili DTD açıklaması veya şeması tanımlanır. İsimler, alt çizgi (_) gibi harfler, sayılar ve özel işaretler içerebilir. İşte hatırlamanız gereken isimler hakkında birkaç kural:

  • Elementlerin isimlerindeki boşluklara izin verilmez.
  • İsimler harfle başlamalı ve bir figür veya işaretle değil. (Bu ilk harften sonra, herhangi bir harf, sayı ve izin verilen karakter kombinasyonunu kullanabilirsiniz.)
  • Kayıt önemli değil, ancak karışıklığı önlemek için, gözlemleyin.
Liste 2. Diğer Elemanlar
Sundae dondurma. 5 dakika

XML belgesi, hiçbir şey olmadığı ve bir etiketle ifade edilebilecek boş etiketler içerebilir ve bir çift açılış ve kapatma etiketi bulunur. Örneğin, bağımsız bir HTML tarzı etiketi olabilir . Herhangi bir alt öğe veya metin içermez, bu yüzden boş bir üründür ve olarak yazabilirsiniz. (Sonunda bir boşluk ve tanıdık bir kapama eğik çizgi ile).

Gömme elemanları

Ek- Bu, elementlerin diğer elemanların içindeki yerleşimidir. Bu yeni elementler denir sübvansiyon elementler ve bunları çevreleyen unsurlar - onların partici elementler. Kök elementinde Birkaç unsur var. Bunlar iç içe iştirakler , ve Elemanın içinde Birkaç aynı bağlı ortaklık var . Bir ek, çok seviyeli bir XML belgesi yapabilir.

Tipik bir sözdizimsel hatası, ebeveyn ve çocuk elemanlarının yuvalanmasıyla ilişkilidir. Her çocuk elemanı tamamen ana öğesinin açılış ve kapanış etiketleri arasında yer almalıdır. Çocuk elemanları bir sonraki çocuk öğesi başlayana kadar bitmelidir.

Doğru bağlanmaya bir örnek verilmiştir. Etiketler olmadan başlar ve biter Örmek diğer etiketleri ile.

Liste 3. XML elemanlarının uygun şekilde bağlanması.
Sundae dondurma. 3 Çikolata şurubu veya çikolata şekerleme 1 fındık. 1 kiraz. 5 dakika

Öznitelik ekleme

Elementler bazen öğelere eklenir. Öznitellikler. Nitelikler, değerin, bunun gibi çift tırnak içine alındığı bir çift değeri ("), şöyle: Tip \u003d" Tatlı "olarak gerçekleştirilir. Nitelikler, öğe ile ilgili ek parametrelerle kaydetmenizi sağlar, değerlerini değiştirir. Bu parametreler öğeden aynı belgedeki öğeye.

Öznitelik, birkaç öznitelik bile, öğenin ilk etiketi içinde görünür: . Birden çok nitelik eklerken, boşluklarla ayrılırlar: . XML dosyası, şimdi göründüğü gibi gösterilir.

Liste 4. XML dosyamız elemanları ve nitelikleri ile
Sundae dondurma. 5 dakika

Herhangi bir sayıda nitelik kullanabilirsiniz. Belgenize hangi ayrıntıları ekleyebilirsiniz. Nitelikler, belgeler depolanırsa, örneğin tarifler türüne göre, özellikle kullanışlıdır. Öznitelik adları, aynı karakterleri, aynı boşlukların hariç tutulmasıyla aynı karakterleri içerebilir ve adını harfle başlayabilir.

Doğru ve yanlış yapılmış XML

Yapınızda tanımlanan kuralları izlerseniz, düzgün bir şekilde oluşturulmuş bir XML kodunu kolayca oluşturabilirsiniz. Doğru XML- Bu, tüm XML kurallarına uygun olarak derlenen bir XML kodudur: elemanların, ek, öznitelik adını vb. Doğru adlandırılması.

XML ile tam olarak ne yaptığınıza bağlı olarak, doğru XML ile çalışmanız gerekebilir. Yukarıdaki sıralama örneğini tarifler türüne göre düşünün. Elemanlara ihtiyacım var Tip niteliğini içeriyordu. Kodu başarıyla kontrol edebilmek ve bu özelliğin değerinin sürekli varlığını sağlamak çok önemlidir.

Kontrol altında (doğrulama) Belgenin yapısının, bunun için kurulan kurallara ve her bir ebeveyn öğesi için çocuk elemanlarının belirlenmesi için doğrulanması için anlaşılır. Bu kurallar tanımlanmıştır Belge türünün açıklaması (DTD) veya şemada. Böyle bir kontrol için, bir DTD veya bir şema oluşturmanız gerekir ve ardından XML dosyalarınızda DTD dosyasına veya şema için bir bağlantı verin.

Teste izin vermek için, XML belgelerinin başlangıcına belge türünün (DOCTYPEY) bildirimini daha da yakınlaştırmanız gerekir. Bu satır, bu belgeyi doğrulamak için kullanılacak olan bir DTD veya bir şemaya (öğe ve kuralların listesi) referansı içerir. DocType dizesi yaklaşık olarak böyle olabilir.

Liste 5. DOCTYPE.

Bu örnek, adlandırılan dosya listenizin dosyanızın olduğu anlamına gelir. dosyaadı.dtd. Bilgisayarınızda bulunur (yani, sistem dizininde, halka açık kamu dizininde değil).

Varlıkların Kullanımı

Varlık (varlık)metin veya özel karakter parçaları olabilir. Belgenin içinde veya dışında belirtilebilirler. Hataları önlemek ve ekranın doğruluğu için, varlık uygun şekilde bildirilmeli ve ifade edilmelidir.

Özel karakterleri doğrudan metne giremezsiniz. Özel karakterler metinde kullanmak için, varlıklara yapılmaları ve bu karakterlerin kodlarını kullanmaları gerekir. Varlıklar olarak, şirket adı gibi cümleleri tanımlayabilir ve ardından tüm metinleri kullanabilirsiniz. Bir öz oluşturmak için, bir ad atayın ve bu adı yerleştirin ve bu adı Ampersand Sign (&) (ve) ve noktalı virgülle bittikten sonra (veya başka bir ad) ekleyin. Ardından, DOCType sıranızdaki bu kodu, kare parantez içinde () olarak girin. Bu kod, öz yerine ikame edilen metni tanımlar.

Liste 6. Essence

Varlıkların kullanımı, aynı ifadenin veya bilgilerin tekrarlanan tekrarlanmasını önlemeye yardımcı olur. Ayrıca, metin düzenlemesini kolaylaştırabilir (örneğin, Şirket adını değiştirirse), özü belirleme dizisinin basit bir ayarını kullanarak birçok yerde birçok yerde birçok yerde.

Hatalardan nasıl kaçınılır

XML dosyaları oluşturmayı öğrenirken, resmi doğruluklarından emin olmak ve XML kurallarının karşılandığından emin olmak için bunları XML Düzenleyicisi'nde açın. Örneğin, Windows® Internet Explorer®'ınız varsa, XML dosyanızı tarayıcıya açabilirsiniz. Öğeleriniz, öznitelikleriniz ve metinler görüntülenirse, XML dosyası doğru şekilde derlenir. Hatalar varsa, muhtemelen sözdiziminde bir şeyiniz varsa ve belgenizin yazım hataları veya geçiş etiketleri ve noktalama işaretleri üzerindeki iyice kontrol etmeniz gerekir.

Sonuç

Birkaç basit kural öğrenmek, kendi XML öğelerinizi ve özelliklerinizi esnek bir şekilde geliştirebilirsiniz. XML kuralları karmaşık değildir. XML belgesini de keşfedin. Asıl şey, belgelerden ne istediğinizi, sıralama ve arama olanakları anlamında ne istediğinizi anlamak ve daha sonra bu gereklilikleri karşılamak için unsurlar ve nitelikler geliştirir.

Hedefi anladığınızda ve metninizi nasıl yerleştireceğinizi biliyorsanız, etkili ürünler ve nitelikler oluşturabilirsiniz. Bu bakış açısına göre, uygun şekilde inşa edilmiş ve kullanışlı bir XML belgesi oluşturmanız gereken her şeydir.

Yine XML'yi keşfetmeye devam ediyoruz ve bu makalede işleme talimatları, yorumlar, öznitelikler ve diğer XML elemanları gibi XML yapılarıyla tanışacak. Bu unsurlar, kesinlikle herhangi bir karmaşıklığın belgelerini yerleştirmek için standartlara uygun olarak, temeldir ve esnektir.

XML etiketleri gibi bazı anlar, zaten önceki makalede kısmen düşündük ". Şimdi bir kez daha bu konuya dokunacağız ve daha ayrıntılı olarak analiz edeceğiz. Bu, özellikle XML tasarımlarının tüm resmini sunmanızı kolaylaştırmak için yapılır.

XML öğeleri. Boş ve boş olmayan XML elemanları

Önceki makalede belirtildiği gibi, XML'deki etiketler sadece HTML'de olduğu gibi metni yerleştirmez ve bireysel unsurları (nesneler) tahsis eder. Buna karşılık, elemanlar belgedeki bilgileri hiyerarşik olarak düzenler, bu da bunları XML dilinin ana yapısal birimlerini yapmıştır.

XML'de, elemanlar iki tip olabilir - boş ve boş olmayan. Boş elemanlar, metin veya diğer tasarımlar gibi herhangi bir veri içermez. Boş elemanların aksine, boş olmayan, metin veya diğer öğeler ve XML tasarımları gibi herhangi bir veri içerebilir. Yukarıdakilerin özünü anlamak için boş ve boş olmayan XML elemanlarının örneklerini dikkate alalım.

Boş XML öğesi

Boş olmayan XML öğesi

İçerik elemanı ...

Yukarıdaki örnekten gördüğümüz gibi, boş olmayan elemanların boşluğun ana farkı sadece bir etiketten oluşmalarıdır. Ayrıca, XML'de tüm isimlerin vaka bağımsız olduğu söylemeye değer. Bu, MyEeLement, MyElement, MyElement, vb. Onlar kendi aralarında farklılık gösterir, bu yüzden şu an gelecekte hataları önlemek için hemen hatırlanmalıdır.
Yani, elemanlarla uğraştık. Şimdi, XML belgelerinin mantıksal organizasyonu gibi bir sonraki an için geçelim.

XML belgelerinin mantık organizasyonu. Ağaç yapısı XML verileri

Hatırladığınız gibi, XML dilinin ana tasarımı, diğer gömülü yapılar içerebilen ve böylece bir ağaç şeklinde hiyerarşik bir yapı oluşturabilecek unsurlardır. Bu durumda, ebeveyn elemanı kök olacak ve diğer tüm bağlı ortaklıklar, XML ağacının dalları ve yaprakları olacaktır.

Yukarıdakilerin özünü anlamayı kolaylaştırmak için, aşağıdaki görüntüyü bir örnekle düşünelim.

Gördüğümüz gibi, XML belgesinin bir ağaç formundaki organizasyonu, işleme için oldukça basit bir yapıdır. Aynı zamanda, ağacın kendisinin etkileyici karmaşıklığı oldukça büyüktür. XML'deki nesneleri tanımlamanın en iyi yolu olan bir ağaç gösterimidir.

XML nitelikleri. XML'de Öznitelik Kayıt Kuralları

XML'de, elemanlar ayrıca tek veya çift tırnak içine yerleştirilmiş atanmış değerlerle de öznitelikler içerebilir. Öğenin özniteliği aşağıdaki gibi verilmiştir:

Bu durumda, "öznitelik" adlı bir özellik ve "değer" değeri kullanıldı. XML özniteliğinin mutlaka bir değer içermesi gerektiğini ve boş olamayacağına dikkat etmek gerekir. Aksi takdirde, kod XML'nin bakış açısından yanlış olacaktır.

Ayrıca, alıntıların kullanımına dikkat etmeye değer. Özellik değeri hem tek hem de çift tırnak içine alınabilir. Ek olarak, diğerlerinin içindeki bazı alıntılar kullanmak da mümkündür. Göstermek için aşağıdaki örnekleri göz önünde bulundurun.

Diğer XML yapılarına devam etmeden önce, aynı zamanda değerler gibi özel karakterler olarak nitelikler oluştururken "ve" veya açısal braketler "olarak nitelikler oluşturulduğunu da belirtmek ister.<>" Bu karakterler yöneticiler olarak ayrılmıştır ("&" - özü ve "<» и «>»Eleman etiketini açın ve kapatın) ve" saf formda "kullanılamaz. Onları kullanmak için özellerin değiştirilmesine başvurmanız gerekir.

XML İşleme Talimatları (İşleme Talimatları). XML bildirimi

XML dilinde, bir veya başka bir belgeyi işleme koyacak uygulamalar için belirli bilgileri taşıdığınız belgedeki talimatlarda etkinleştirmek mümkündür. XML işleme talimatları aşağıdaki gibidir.

Yukarıdaki örnekten görülebileceği gibi, XML'de, işleme talimatları bir soru işareti olan açısal alıntılara eklenir. Bu, PHP'deki ilk derslerde düşündüğümüz, her zamanki gibi hatırlatır. İşleme talimatının ilk bölümünde, bu talimatın ikinci kısmı veya içeriğinin ikinci kısmı için tasarlanmış olan uygulama veya sistem. Bu durumda, işleme talimatları yalnızca ele alındıkları uygulamalar için geçerlidir. İşleme talimatına bir örnek aşağıdaki talimat olabilir.

XML'de, işleme yönergelerine çok benzer olan özel bir tasarım olduğuna dikkat etmeye değer, ancak kendisi değil. İşleme yazılımına aktarılan XML bildirimi hakkında konuşuyoruz, kodlama gibi XML belgesinin özellikleri, bu belgenin yazıldığı gibi, dilin dili.

Yukarıdaki örnekten görülebileceği gibi, XML bildirimi, bir miktar yukarıda konuştuğumuz normal niteliklere çok benzeyen sözde sözde öznitelikleri içerir. Gerçek şu ki, tanım gereği, XML bildirimi ve işleme talimatları özellikleri içeremez, bu nedenle bu reklamlar psödo-attilif olarak adlandırılır. Geleceğin çeşitli hataları önlemesini hatırlamaya değer.

Pseudo-Attributigium ile uğraştığımızdan beri, ne demek istediğine bakalım.

  • Kodlama - XML \u200b\u200bbelgesi kodlamasından sorumludur. Genellikle UTF8 kodlaması kullanın.
  • Sürüm, bu belgenin yazıldığı XML dilinin sürümüdür. Bu genellikle XML sürüm 1.0.

Şimdi, makalenin sonuçlandırılmasına gidelim ve CDATA'nın yorumları ve bölümleri olarak böyle bir XML tasarımlarını düşünelim.