• XML'i Flash'a uygulama Bir XML belgesi nasıl açılır - XML ​​dosyalarıyla çalışmanın özellikleri

    XML (Genişletilebilir İşaretleme Dili), konsorsiyumun XML Çalışma Grubu tarafından geliştirilmiştir. Dünya çapında Web Konsorsiyumu (W3C). İçerik oluşturucuların bunu nasıl tanımladığı aşağıda açıklanmıştır:

    Genişletilebilir İşaretleme Dili (XML) bir oluşturan kısım SGML dili... SGML'nin Web'de kullanımını ve şu anda HTML dili kullanılarak uygulanan görevleri kolaylaştırmak için tasarlanmıştır. XML, SGML ve HTML'nin kullanımını ve birlikte çalışabilirliğini geliştirmek için tasarlanmıştır."

    Bu, XML Çalışma Grubu tarafından Şubat 1998'de oluşturulan sürüm 1.0 XML belirtiminden bir alıntıdır. Belgenin tamamı, http://www.w3.org/TR/REC/-xml adresindeki W3C web sitesinde bulunabilir.

    XML, dile benzer şekilde World Wide Web'e bilgi yerleştirmek için özel olarak tasarlanmış bir biçimlendirme dilidir. Köprü metni biçimlendirme Başlangıçta Web sayfaları oluşturmak için standart dil haline gelen HTML (Köprü Metni İşaretleme Dili). HTML dili tüm ihtiyaçlarımızı tamamen karşıladığından, şu soru ortaya çıkıyor: neden kesinlikle ihtiyacınız vardı? yeni dil Web için mi? Avantajları ve dezavantajları nelerdir? HTML ile nasıl etkileşime girer? HTML'nin yerini alacak mı, yoksa sadece geliştirecek mi? Son olarak, XML'in bir parçası olduğu SGML nedir ve Web sayfaları için neden SGML kullanılmamalıdır? Bu bölümde tüm bu soruları cevaplamaya çalışacağım.

    XML'in Amacı

    HTML dili, bileşenleri tipik bir Web sayfasına yerleştirmek için kullanabileceğiniz sabit bir dizi öğe sağlar. Bu tür öğelere örnek olarak başlıklar, paragraflar, listeler, tablolar, resimler ve bağlantılar verilebilir. Örneğin, HTML aşağıdakiler için harikadır:

    kişisel bir ana sayfa oluşturma. Ana sayfanın HTML kodlarında açıklaması aşağıdadır:

    Ana Sayfa

    Michael Young'ın Ana Sayfası

    Web siteme hoş geldiniz!

    Web Sitesi İçeriği

    Lütfen aşağıdaki konulardan birini seçin:

    • yazı
    • Aile
    • fotoğraf Galerisi

    Diğer İlginç Web Siteleri

    Başka bir Web sitesini keşfetmek için aşağıdakilerden birine tıklayın:

    • "1. XML, İnternette doğrudan kullanılan dil olmalıdır."

      Şimdiye kadar tahmin etmiş olabileceğiniz gibi, XML öncelikle Web'de bilgi depolamak ve dağıtmak için tasarlandı.

      "2. XML, çok sayıda uygulamayı destekleyecektir."

      Asıl amacı Web üzerindeki bilgileri sunucular ve tarayıcılar aracılığıyla dağıtmak olsa da XML, diğer programlar tarafından da kullanılmak üzere tasarlanmıştır. Örneğin, finansal programlar arasında bilgi alışverişinde bulunmak, yazılım ürünlerini dağıtmak ve güncellemek ve telefon üzerinden bilgi iletmek için sesli komut dosyaları yazmak için XML kullanılır.

      "3.XML, SGML ile uyumlu olacaktır."

      XML, SGML'nin özel bir dalıdır. Buradaki avantaj, adaptasyon kolaylığıdır. yazılım araçları HTML ile çalışmak için SGML.

      "4. XML belgelerini işleyen programlar yazmak daha kolay olacak."

      İçin pratik kullanım XML belgelerini işleyen tarayıcıların ve diğer programların yazılmasını kolaylaştırmak için XML gereklidir. Aslında, XML'i SGML'den ayırmanın ana nedeni, XML belgelerini işlemek için program yazmanın erişilebilirliğiydi.

      "5. Miktar Ek özellikler XML'de minimum ve ideal olarak sıfır olmalıdır."

      XML'deki minimum ek işlev sayısı, XML belgelerini işlemek için program yazmayı kolaylaştırır. SGML'deki ek eklentilerin bolluğu, Web belgelerini temsil etmek için pratik olmamasının ana nedeni olmuştur. Ek SGML özellikleri, etiketler için sınırlayıcı karakterlerin yeniden tanımlanmasını gerektirir (genellikle ) ve işlemcinin öğenin sonunu algılaması için bitiş etiketini çıkarma. Bir SGML belge işleme programını titizlikle yazarken, nadir de olsa tüm ek işlevlerin olasılığını hesaba katmak gerekir.

      6. XML belgeleri kullanıcı için anlaşılır ve açık olmalıdır."

      XML, dünya çapındaki kullanıcılar ve programlar arasında bilgi alışverişi için lingua franca (evrensel dil) olarak tasarlanmıştır. Bu konsepte göre, kullanıcılar ve özel programlar XML belgeleri oluşturabilmeli ve okuyabilmelidir. Kullanıcı için erişilebilirlik ve şeffaflık, XML'i veritabanları ve metin belgeleri oluştururken kullanılan diğer formatların çoğundan ayırır.

      Düz metin olarak açıklandığı ve mantıksal bir hiyerarşik ağaç yapısına sahip olduğu için kullanıcı bir XML belgesini kolayca okuyabilir. Öğelere, niteliklere ve nesnelere anlamlı adlar vererek ve yardımcı yorumlar ekleyerek XML belgelerini basitleştirebilirsiniz. (Bu, bu bölümde daha sonra tartışılacaktır.)

      7. XML geliştirme oldukça hızlı bir şekilde tamamlanmalıdır.”

      XML, yalnızca programcılar ve kullanıcılar kabul ederse kabul edilen bir standart haline gelecektir. Bu standart, toplum yazılım şirketleri tarafından giderek daha fazla yaratılan alternatif standartları kabul etmeden önce oluşturulmalıdır.

      "8. XML dili resmi ve öz olmalıdır."

      XML belirtimi, Genişletilmiş Backus-Naur Formu (EBNF) olarak bilinen bir gösterimle bilgisayar dillerini temsil etmek için kullanılan resmi bir dilde yazılmıştır. Bu resmi dil, anlaşılması oldukça karmaşık olmasına rağmen, belirsizlik içermez ve XML belgelerinin ve özellikle bunların işlenmesi için programların yazılmasını büyük ölçüde kolaylaştırır.

      "9. XML belgelerinin oluşturulması daha kolay olacaktır."

      Web belgeleri için biçimlendirme dili olarak XML'in pratik kullanımıyla, yalnızca işleme programlarının yazılması değil, aynı zamanda XML belgelerini kendilerinin oluşturma süreci de basitleştirilmiştir.

      "10. Sıkıştırılmış form, XML işaretlemesinde önemli değildir."

      Madde 6 uyarınca (XML belgesi kullanıcı için açık ve anlaşılır olmalıdır), belirtilen hedefle çelişmemesi için XML işaretlemesi aşırı özlü olmamalıdır.

      Standart XML Uygulamaları

      XML'i tek bir belgeyi açıklamaktan daha fazlası için kullanabilirsiniz. Bireysel bir kullanıcı, şirket veya standartlar komitesi, belirli bir belge sınıfına uygulanacak gerekli XML öğeleri setini ve belge yapısını tanımlayabilir. Böyle bir öğe kümesi ve belge yapısının açıklamasına XML uygulaması veya XML sözlüğü denir.

      Örneğin bir kuruluş, moleküler yapıları, insan kaynaklarını, çoklu ortam sunumlarını tanımlayan veya vektör grafikleri içeren belgeler oluşturmak için bir XML uygulaması tanımlayabilir. Bu bölümün sonunda, önceden oluşturulmuş bazı yaygın XML uygulamalarının ve oluşturulması planlanan uygulamaların bir listesi bulunmaktadır.

      Bir XML uygulaması, genellikle bir XML belgesinin geçerli bir bileşeni olan Belge Türü Tanımlayıcısı (DTD) oluşturularak tanımlanır. Bir DTD, bir veritabanı şeması etrafında oluşturulur: bir belgede kullanılabilecek öğelerin adlarını, öğelerin görünebileceği sırayı, uygulanabilecek öğe özniteliklerini ve belgenin diğer özelliklerini oluşturur ve tanımlar. Bir XML uygulamasının pratik kullanımı için, genellikle onun DTD'sini XML belgenize dahil edersiniz; Bir belgede DTD'nin bulunması, belgenizin o uygulamanın standartlarına uyması için kullanacağınız öğeleri ve yapıları sınırlar. Bu bölümde daha önce tartışılan XML belgelerinin açıklamaları bir DTD içermiyordu. DTD'leri nasıl tanımlayacağınızı ve kullanacağınızı Bölüm 5'te öğreneceksiniz.

      Belgelerinizi geliştirirken standart XML uygulamalarını kullanmanın faydaları, belgeleri uygulamanın diğer tüm kullanıcılarıyla paylaşabilmeniz ve belgenin o uygulama için oluşturulmuş yazılım kullanılarak işlenip görüntülenebilmesidir.

      XML belgelerinin kalitesini artıran XML uygulamaları

      Belirli belge sınıflarını tanımlamak için XML uygulamalarına ek olarak, herhangi bir XML belgesi türünde kullanabileceğiniz birkaç XML uygulaması vardır. Bu uygulamalar, belge oluşturmayı ve kalitesini artırmayı kolaylaştırır. Aşağıda bu tür uygulamalara örnekler verilmiştir.

      • Genişletilebilir Stil Sayfası Dili (XSL), XML sözdizimini kullanarak güçlü stil sayfaları oluşturmanıza olanak tanır.
      • XML Şeması, DTD'leri kullanmaktan daha güçlü bir alternatif olan standart XML sözdizimini kullanarak XML belgeleriniz için ayrıntılı şemalar geliştirmenize olanak tanır.
      • XML Bağlama Dili (XLink), size XML belgelerinizi bağlama yeteneği verir. HTML'deki bağlantı düzenleme mekanizmasından daha fazla özgürlük sağlayan birden fazla hedef bağlantıyı ve diğer kullanışlı özellikleri destekler.
      • XML İşaretçi Dili (XPointer), esnek hedef bağlantıları tanımlamanıza olanak tanır. XPointer ve XLink'i birlikte kullanırken, yalnızca özel olarak işaretlenmiş paragraflara atlamakla kalmayıp, hedef belgedeki herhangi bir yere bağlantılar düzenleyebilirsiniz.

      XLS, Bölüm 10'da ele alınacaktır. Diğer XML uygulamaları henüz olgunlaşmamıştır ve bu kitapta ele alınmamıştır. (XLink ve XPointer, Internet Explorer 5'te desteklenmez).

      Gördüğünüz gibi, XML yalnızca belgeleri tanımlamak için yararlı bir araç değil, aynı zamanda İnternet geliştikçe kullanışlı olabilecek uygulamalar ve uzantılar oluşturmak için bir çerçeve görevi görüyor.

      XML'in gerçek kullanımı

      XML kavramı oldukça ilginç olsa da, onu nasıl uygulamaya koyacağınızı merak ediyor olabilirsiniz. Bu bölüm, hem yaygın kullanımda hem de gelecekte XML'in bu tür kullanımlarına ilişkin örneklerin bir listesini sağlar. Pratik kullanım için ilgili XML uygulamaları varsa parantez içinde verilecektir. Örneğin, MathML XML uygulamasının matematiksel formülleri biçimlendirmenize izin vereceğini öğrenebilirsiniz.

      Bağlantı. Ayrıntılı açıklamalar da dahil olmak üzere mevcut ve gelecek XML uygulamalarının daha eksiksiz bir listesi için Oasis SGML/XML Web sayfasına bakın (http://www.oasis-open.arg/cover/ocml.htmW uygulamaları).

      • Veritabanlarıyla çalışmak. Geleneksel veritabanları gibi, XML de her veritabanı girişi içindeki her bilgi alanını etiketlemek için kullanılabilir. (Örneğin, adres listesi girişlerinde her bir adı, adresi ve telefon numarasını etiketleyebilirsiniz.) Daha sonra verileri görüntüleyebilirsiniz. Farklı yollar ve arama, sıralama, filtreleme ve diğer veri işlemeyi organize edin.
      • Belgelerin yapılandırılması. XML belgelerinin hiyerarşik yapısı, romanlar, bilimsel makaleler ve oyunlar gibi belgelerin yapısını işaretlemek için idealdir. Örneğin, bir oyunu eylemler, sahneler, karakterler, hikâyeler, manzara vb. bir belgedeki bilgileri bulun, ayıklayın veya değiştirin; içindekiler, özetler ve açıklamalar oluşturmak; bilgileri başka yollarla işlemek.
      • Birlikte çalışmak vektör grafikleri(VML - Vektör İşaretleme Dili).
      • Multimedya sunumları (SMIL - Senkronize Multimedya Entegrasyon Dili, HTML + TIME - HTML Zamanlı Etkileşimli Multimedya Uzantıları).
      • Kanalların açıklaması. Kanallar, abonelere otomatik olarak gönderilen Web sayfalarıdır. (CDF - Kanal Tanım Formatı).
      • Yazılım paketlerinin tanımı ve aralarındaki ilişkiler. Bu tür açıklamalar, yazılım ürünlerinin ağ üzerinde dağıtımını ve güncellenmesini sağlar (OSD - Open Software Description).
      • XML ortak iletişimini kullanarak Web üzerinden uygulama etkileşimi. Bu mesajlar işletim sistemlerinden bağımsızdır, nesne modelleri ve bilgisayar dilleri (SOAP - Basit Nesne Erişimi protokol).
      • Elektronik kartvizitlerin e-posta yoluyla gönderilmesi.
      • Finansal bilgi alışverişi. Açık ve anlaşılır bir formatta bilgi alışverişi, finansal programlar (Quicken ve Microsoft Money gibi) ile finansal kurumlar (bankalar, kamu fonları) (OFX - Open Financial Exchange) arasında gerçekleştirilir.
      • Ticari İnternet işlemleri için karmaşık dijital formlar oluşturun, yönetin ve kullanın. Bu tür formlar, yasal olarak tanınmalarını sağlayan sayısallaştırılmış imzalar içerebilir (XFDL - Genişletilebilir Formlar Açıklama Dili).
      • İş isteklerinin ve özgeçmişlerin değişimi (HRML - İnsan Kaynakları Yönetimi Biçimlendirme Dili).
      • biçimlendirme matematiksel formüller ve bilimsel bilgiler
      • Web (MathML - Matematiksel İşaretleme Dili).
      • Moleküler yapıların tanımı (CML - Chemical Markup Language).
      • DNA, RNA ve zincirler hakkında bilgi kodlama ve görüntüleme (BSML - Bioinformatic Sequence Markup Language).
      • Şecere verilerinin kodlanması (GeDML - Şecere Veri İşaretleme Dili).
      • Astronomik Veri Alışverişi (AML - Astronomik İşaretleme Dili).
      • Müzik notalarının oluşturulması (MusicML - Music Markup Language).
      • Telefon üzerinden bilgi iletmek için sesli komut dosyalarıyla çalışmak. Sesli komut dosyaları, örneğin sesli mesajlar, hisse senedi sorgulamaları ve hava durumu tahminleri (VoxML) oluşturmak için kullanılabilir.
      • Bilgi işleme ve teslim kurye servisi. Örneğin Federal Express, zaten bu amaçla XML kullanıyor.
      • Basında reklamların dijital formatta sunumu (AdMarkup).
      • Yasal belgelerin tamamlanması ve yasal bilgilerin elektronik alışverişi (XCL - XML ​​​​Mahkeme Arayüzü).
      • Hava tahmini kodlaması (OMF - Hava Durumu Gözlem İşaretleme Biçimi).
      • Gayrimenkul işlemleri hakkında bilgi alışverişi (RETS - Gayrimenkul İşlem Standardı).
      • Sigorta bilgilerinin değişimi.
      • Açık web standartlarını (XMLNews) kullanarak haber ve bilgi alışverişi.
      • Dini bilgilerin temsili ve ibadet metinlerinin biçimlendirilmesi (ThML - Teolojik İşaretleme Dili, LitML - Liturjik İşaretleme Dili).

      Neden ihtiyacın olduğunu zaten anladığını düşünüyorum HTML(Evet, HTML). Tarayıcıda veri sunmak için gereklidir. yani var HTML Kodu ve buna karşılık gelen HTML Kodu belli bir tür Bununla birlikte, mevcut eğilimler yalnızca verilerin görüntülenmesini değil, aynı zamanda yetkin iç yapılarını da gerektirir.

      bunun için bir yapı oluşturmak ve bir XML dili var. Basit örnek:

      Yeşil Elma

      Biz insanlar için her şey hemen netleşir. Hemen kafamda bir görüntü beliriyor. yeşil Elma"Ancak, bir bilgisayara bunun bir portakal değil, bir insan ya da bizim galaksimiz olduğunu nasıl açıklayabiliriz? İşte yine imdada yetişiyor. xml, elmanın nerede, portakalın nerede, kişinin nerede ve galaksimizin nerede olduğunu netleştiren herhangi bir etiket oluşturabileceğimiz yer. Umarım açıkça anlatmışımdır.

      Şimdi en önemli şey hakkında. XML'in ana özelliği evrenselliğidir.. Yani xml herhangi birini anlar modern dil. Dan beri XML'dir Metin dosyası , sonra onunla normal bir not defterinde çalışabilirsiniz. Şimdi özellikle pratik yapmak için, xml nerede kullanılır:

      • ayarlar dosyası. Ayarlar XML dosyası okuması ve yazması çok kolay. Bu sebeple yüzlerce XML dosyaları.
      • Veri Köprüsü yazılmış programlar arasında farklı diller. Dilin evrenselliğinden kaynaklanan çok önemli bir özelliktir ve bu karmaşık sistemlerde düzenli olarak kullanılmaktadır.
      • Veri depolama. Aslında, bu bir tür veritabanı analoğudur, ancak gerektirmez VTYS(Örneğin, MySQL). Sorgu dili sayesinde XPath bununla kolayca iletişim kurmak mümkün hale geliyor" veri tabanı".

      Ve son olarak kendi pratiğimden en basit örneği verebilirim. Sitemde bir XML site haritam var. Sitenin tüm sayfalarına bağlantılar vardır. Bu şey, iyi bir site dizine ekleme için çok kullanışlı ve önemlidir, ancak her seferinde manuel olarak ekleyin yeni sayfa rahatsız. Bu nedenle, bilgi sayesinde XML ile çalışmak, Bu işi kolayca otomatikleştirdim. Bu yüzden XML yararlı bir dildir herhangi bir programcının en azından genel anlamda bilmesi gereken.

      Bunun için ne gerekli, bu XML?

      [Son zamanlarda, bu sayfaların görünümüyle bağlantılı olarak, en sık
      bana soru şu oldu: "Söyle bana, neden XML'e ihtiyaç var?
      HTML bizim için yeterli değil mi? "Kendi yayınlarımı yapmak için fazla zamanım (veya zekam) olmadığından ve ayrıca klasikleri derinden onurlandırdığımdan, başlığıyla ilgili mükemmel bir makaleyi hızlı bir şekilde çevirmeyi tercih ettim.
      - belki de bu "Yardım" dizisinin ilk bölümüdür]

      Jon Bosak, Tim Bray
      XML ve İkinci Nesil Web
      Scientific American'dan, Mayıs 1999

      İnsanlara birkaç ipucu verin, gerisini onlar çözecektir. Daha büyük metin bloklarının daha küçük parçalara bölündüğü sayfaya bakıldığında, herkes bunun makalenin başlangıcı olduğunu hemen anlar. Alışveriş listesine baktığınızda, bunun alışveriş için bir "talimat" olduğunu hemen tahmin edebilirsiniz. Sayı sütunlarını görmek - bunun bir banka hesabı olduğunu anlayın. Bilgisayarlar henüz o kadar akıllı değil - tüm bunların onlara tam olarak iletilmesi gerekiyor - tam olarak neyle uğraşmaları gerekiyor ve bunun için onlardan ne gerekiyor.

      Yeni bir belge biçimlendirme dili olan Genişletilebilir İşaretleme Dili (XML) bu amaçla - bilgiyi kendi kendini tanımlayan hale getirmek için - icat edildi. Bu kolayca telaffuz edilebilen değişiklikler ("kendini tarif eden" belge, bilgisayarlarla iletişim kurallarını değiştiren) büyük bir potansiyel taşır - İnternetin bilgi dağıtım ortamındaki rolü, diğer insan faaliyeti türlerine doğru genişlemeye başlar. Gerçekten de, 1998'de W3C tarafından onaylanmasından bu yana, XML spesifikasyonu her yerde - endüstride ve bilimde, mal ve ilaç üretiminde - orman yangını gibi yayılıyor.

      Meraklılar, XML'in Web'in bir dizi küresel sorununu çözmek için bir fırsat sağlayacağını umuyorlardı. Bu sorunlar biliniyor: Birincisi, İnternet süper hızlı bir ağdır, genellikle bir kaplumbağadan daha kötü davranır; ve ikincisi, ağ neredeyse tüm bilgileri içermesine rağmen, içinde ihtiyacınız olan bir şeyi bulmak genellikle çileden çıkaracak kadar zordur.

      Bu sorunların her ikisi de öncelikle Web'in birincil dili olan HTML'nin doğasından kaynaklanmaktadır. Ve şimdiye kadar önerilen diğer dillere kıyasla HTML'nin başarısı elektronik yayınlar Açıkçası, HTML çok seyrek: özünde, tarayıcıya yalnızca sayfaya metin, resim ve düğmelerin nasıl yerleştirileceğini söyler. HTML tamamen bilgi sunmakla ilgilidir ve bu nedenle öğrenmesi oldukça kolaydır, ancak bunun bir bedeli vardır.

      Bu, web sitelerinin, soran herkese sayfalar gönderen faks makineleri gibi olması gerekmediği sürece, geliştirmenin karmaşıklığına yansır. Dünyanın dört bir yanındaki insanların ve şirketlerin yarısından fazlası, kullanıcılardan emir alabilen, hastalık teşhislerini iletebilen ve hatta fabrika katlarında ve bilim laboratuvarlarında hassas enstrümantal operasyonlar yürütebilen web sitelerini tercih ediyor. Bunun gibi görevler HTML ile ASLA karşılaşmaz!.

      Örneğin, doktorunuz sağlık kartınızdan alınan analizleri tarayıcısına "çıkarmayı" başarsa bile, alınan yanıtı veri tabanına geri eklemek için bunları ağ üzerinden başka bir uzmana göndermesi pek olası değildir. Bilgisayarı, kendisi için olabildiğince açık olan bilgilerle ne yapacağını bilemiyor.

      ol ol

      veya olmak.
      Efsanevi Kernighan bir keresinde, WYSIWYG ilkesinin (ne görürsen onu alırsın) tüm hilesinin, hiçbir şey göremediğinde, genellikle tam olarak aynı miktarı alman olduğunu belirtmişti.

      Yukarıda köşeli parantez içine alınmış sözcüklere etiket adı verilir. HTML'de herhangi bir ayrıştırma etiketi yoktur ve bu nedenle diğer dezavantajı: esnek olmamasıdır. Dile yeni bir etiket eklemek o kadar bürokratik bir bürokrasi ki, o kadar ki kimse onunla uğraşmaz. Ancak kendi etiketleri, her programa müdahale etmez ve sadece yukarıdaki örnekte bir doktorla olan programa değil.

      Bu, günümüzün çevrimiçi mağazaların, postayla sipariş kataloglarının ve diğer etkileşimli sitelerin oluşturulmasındaki yavaş tempoyu büyük ölçüde açıklıyor. Sipariş birimlerinin sayısını ve nakliye yöntemini değiştirirseniz ve "toplam" alanındaki değişiklikte bir avuç sayı görürseniz, yine de uzaktaki (zaten fazla çalışan) bir sunucudan size yeni oluşturulmuş eksiksiz bir grafik sayfasını geri göndermesini istemeniz gerekir. ve herşey. Oysa kendi güçlü bilgisayarınız, şöyle bir şey öğrendiği için boşta kalacaktır.

      Ve , ancak teslimat seçenekleriyle fiyatlar değil.

      Buna Web arama yeteneklerinin tatmin edici olmayan kalitesini ekleyin. Fiyat bilgilerini özel olarak etiketlemenin bir yolu olmadığından, Web'de "fiyat"a dayalı sayfalar aramak kesinlikle imkansızdır.


      Eski bir şey, yeni bir şey

      Prensip olarak, çözüm temeldir: etiketlerin nasıl görünmesi gerektiğini değil, ne tür bir bilgi olduğunu belirtmesi gerekir. Örneğin, HTML'de önerildiği gibi "kalın, paragraf, satır, sütun" yerine "fiyat, beden, miktar, renk" etiketleriyle bir gömleğin sipariş bileşenlerini etiketleyin. O zaman programın belgeyi bir sipariş olarak tanımlaması ve işin geri kalanını yapması daha kolaydır: bu siparişi şu veya bu şekilde gösterin, muhasebe sisteminden geçirin veya ertesi gün yeni bir gömlek olacak şekilde her şeyi yapın kapınıza teslim.

      Biz W3C çalışma grubu olarak 1996 yılında böyle bir proje geliştirmeye başladık. Fikir, tamamen orijinal olmasa da güçlüydü. Nesiller boyunca, editörler ve matbaacılar etiketlediler. el yazısı metinler dizgicilere notlar. Böyle bir "işaretleme dili", on yıllık çalışmanın bir sonucu olarak Uluslararası Standardizasyon Örgütü'nün (ISO) yeni biçimlendirme dilleri oluşturmak için bir sistem tanıttığı 1986 yılına kadar bağımsız olarak geliştirildi.

      SGML (Standart Genelleştirilmiş İşaretleme Dili) adını alan bu dil tanımlama dili - bir meta dil - yararlılığını birçok örnek üzerinde kanıtlamıştır. büyük sistemler yayınların hazırlanması. Ve HTML bile tanımını SGML aracılığıyla aldı. SGML ile ilgili tek zorluk, her yerde bulunabilmesiydi - o zamanlar her bayt önemli olduğundan, tuş vuruşlarını en aza indirmek için pek çok anlaşılmaz şey vardı. Bu nedenle web tarayıcıları bugün onunla pek anlaşamıyor.

      Çalışma grubumuz, XML oluşturarak SGML'yi tüm kabuğundan çıkardı ve yüksek oranda hedeflenmiş ve sindirilebilir bir üst dil önerdi. XML tabanı, herkesin kendi biçimlendirme dilini oluşturmasına izin veren bir dizi kuraldır. Bu kurallar, tek bir küçük program(ayrıştırıcı veya çözümleyici olarak da adlandırılır) herhangi bir yeni dilin tanınmasıyla başa çıkabilir. Testleri bir uzmana havale etmek isteyen doktor örneğini tekrar ele alalım. Profesyonel doktorlar, tıbbi kayıtları kodlamak için XML'den kendi biçimlendirme dillerini oluşturduysa (birkaç grup sorun üzerinde uzun süredir çalışıyor), o zaman bir doktorun meslektaşına gönderdiği bir mesajda şöyle bir şey olabilir:


      <имя пациента>falan filan
      <аллергия на лекарство>falan filan

      Bu formülasyonda, keyfi olarak alınan bir bilgisayar için bir program yazmak artık zor değil, böylece bu standartlaştırılmış tıbbi kayıtları tanıyabilir ve bu kelimenin tam anlamıyla hayati öneme sahip olana girebiliyor. önemli bilgi veritabanınıza.

      Tıpkı HTML'nin herkesin İnternet belgelerini okumasına izin verecek şekilde tasarlanması gibi, XML de bize uyumsuz platformların babilinden bağımsız olarak herkesin okuyabileceği ve yazabileceği bir Esperanto verir. Evet, sıradan bir insanın bakış açısından bile XML dili(diğer veri formatlarından farklı olarak) daha fazla anlam yükü, çünkü okunamayan metin gibi görünecek bir şeye sahip değil.

      XML'in evrenselliğinin gücü, iyi seçilmiş minimal bir dizi kuraldan gelir. İlk olarak, etiketler her zaman bir çift oluşturur ve uygulandıkları metni özel köşeli parantezlerle çevreler. İkinci olarak, eşleştirilmiş etiketler, tırnak işaretleri gibi birbirinin içine yerleştirilebilir ve bu da karmaşık çok düzeyli yapılar oluşturmanıza olanak tanır.

      İç içe yerleştirme kuralı, bilgisayar biliminde ağaç olarak bilinen bir yapı oluşturarak herhangi bir XML belgesini otomatik olarak basitleştirir. Bir aile ağacı gibi, bir belgenin herhangi bir grafik veya metin öğesi, başka bir öğenin babası, oğlu veya erkek kardeşidir (ebeveyn, çocuk, kardeş) ve bu akrabalık ilişkisi her zaman açıktır. Elbette, ağaçlar tüm veri yapılarını tanımlamaz, ancak bilgisayarlar için tipik kullanım durumlarının çoğunu kapsar. Ayrıca, ağaçlar programcılar için son derece uygundur. İşlemleri yeniden sıralamak için küçük bir kod parçası yazmak veya bu çek bir ağaç olarak sunulduğunda tamamen anlaşılır bir çek görüntülemek sorun değil.

      XML'in evrensel gücünün ikinci kaynağı, dünyanın tüm ana dillerindeki metinlerin karıştırılmasına izin veren bir kodlama sistemi olan yeni Unicode standardına olan güvenidir. Aksine, HTML'de, kitlede olduğu gibi kelime işlemcileri, bir belge, kural olarak, hangisi olursa olsun, yalnızca belirli bir dilde olabilir - İngilizce, Japonca veya Arapça.
      Ve program bazı dillerin kodlamasını bilmiyorsa, belgeyi (HTML'de) unutabilirsiniz. Daha da kötüsü olabilir: örneğin, kodlamalardaki tutarsızlık nedeniyle, Tayvan'da yazılan programlar genellikle anakara Çin'e yönelik metinleri okuyamaz. XML söz konusu olduğunda, program onunla nasıl doğru çalışılacağını bilirse, herhangi bir kodlama kombinasyonuyla başa çıkacaktır. Böylece XML, yalnızca farklı bilgisayar platformları arasında veri alışverişi yapmanızı sağlamakla kalmaz, aynı zamanda ulusal ve kültürel engellerin aşılmasını da mümkün kılar.


      Dünya Çapında Beklemenin Sonu

      XML'in yayılmasıyla birlikte web çok daha duyarlı hale gelmelidir. Bugün, ister güçlü masaüstü bilgisayarlar ister cep düzenleyiciler olsun, ağdaki bilgisayar cihazlarının yapabildiği her şey, "GET" ile bir form almak, doldurmak ve ardından çalışırken web sunucusuna gidip gelmekten başka bir şey değildir. ile doldurulmayacaktır. XML bize verilerin yapısını ve anlamlarını forma geçirme yeteneği verir ve bu nedenle tüm bu cihazlar temel işlemleri doğru yerde ve anında yapabilir. Bu sadece sunuculardaki yükü azaltmakla kalmayacak, aynı zamanda ağ trafiğinde de önemli bir azalmaya yol açacaktır.

      Örnek olarak, 4 Temmuz'da Londra'dan New York'a bir uçuş arayan bir çevrimiçi seyahat acentesini hayal edin. Büyük olasılıkla, ekrana sığabileceğinden birkaç kat daha uzun bir liste göreceksiniz. Bu liste, kalkış saati, fiyat veya havayolu gibi daha kesin parametreler belirtilerek kısaltılabilir, ancak bu durumda seyahat acentesi sunucusuna talebinizi "yüklersiniz" ve bir yanıt beklemeniz gerekir. Bununla birlikte, bu uzun uçuş listesi size XML olarak sağlanmışsa, büro buna, sunucuyla herhangi bir etkileşime başvurmadan gereksiz olanları anında ve kolayca sıralayabileceğiniz ve filtreleyebileceğiniz küçük bir Java uygulamasıyla eşlik edebilir. Bunu milyonlarca Web kullanıcısı ile çarpın ve genel etki etkileyici.

      "Endüstri" XML etiketleri ile ne kadar çok ağ bilgisi işaretlenirse, aradığınızı bulmak o kadar kolay olacaktır. Bugün, internette "borsa komisyoncusu işleri" aramak sizi bir çığ gibi reklamlarla boğacak, ancak muhtemelen onların işleriyle ilgili çok az şey olacak - işin çoğu, arama robotlarının çalışmayı sevmediği ücretsiz seri ilan gazete sitelerinde gizlidir. ile. Ve şimdi Amerika Gazete Birliği, arama sürecini çok daha verimli hale getirmeyi vaat eden XML'de kendi reklam biçimlendirme dilini oluşturuyor.

      Sadece bir ara adım olup olmadığı önemli değil. Kütüphaneciler, bir şeyi hızlı bir şekilde bulmanın uzun zamandır bilinen yollarını biliyorlar - belgelere değil, yalnızca kaynakların kendilerini gösteren kompakt anahtar açıklamalarına bakıyorlar. Yani bunlar kütüphane kartları şeklinde örnek içeren kataloglardır. Bilgi hakkındaki bu tür bilgilere "meta veri" denir.

      Bu nedenle, en başından önemli rol XML projesi, tamamlayıcı bir meta veri standardı oluşturmaya odaklandı. Şubat Kaynak Açıklama Çerçevesi (RDF), Web'deki bilgiler için kütüphane kitaplarının dizin kartlarıyla aynı rolü oynamalıdır. RDF meta verileri Web'de yayıldıkça, aramalar şimdi olduğundan çok daha hızlı ve alakalı olacaktır. Web'de kütüphaneci yoktur, ancak her web yöneticisi, her şeyden önce, sitesinin kolay "bulunabilirliği" için çabalar, bu nedenle, insanlar gücünü keşfettikten sonra RDF'nin, geliştirme üzerinde büyük bir etkiye sahip olmasını bekliyoruz. İnternet.

      Elbette arama yapmadan bilgi edinilebilir. Ne de olsa Web hipermetindir - köprülerle dolu milyarlarca sayfa - sizi başka bir sayfaya götürmek için tıklamanız gereken o altı çizili kelimeler. XML'de, köprülerin mekanizması da büyük ölçüde güçlendirilmiştir. W3C'nin yıl sonuna kadar hazırladığı XLink adlı bir XML bağlantı özelliği, kullanıcının birden çok hedef arasından seçim yapmasına olanak tanıyacak. Başka bir hiper bağlantı türü, ziyaretçinin sayfadan ayrılmamasını sağlayarak, doğrudan tıklanan noktada metin veya resim almanıza olanak tanır.

      Muhtemelen XLink'in en faydalı kısmı, spesifikasyonun, yazarların sayfaların kendileri yerine bir özet veritabanına işaret eden dolaylı bağlantıları kullanmasına izin veren kısmıdır. Dolayısıyla, yazar sayfanın adresini değiştirmişse, basit bir yazarın böyle bir veritabanındaki bir kaydı düzenlemesi, sayfasına giden tüm bağlantıları kolayca güncelleyebilir. Bu, tanıdık hale gelen ve "bozuk" bir bağlantıya işaret eden "404 Dosya Bulunamadı" mesajlarından kurtulacaktır.

      kombinasyon daha fazla verimli işleme, daha kesin aramalar ve daha esnek bağlantı, Web'in yapısında devrim yaratıyor ve bilgiye erişmede tamamen yeni yöntemler açıyor. Kullanıcılar için bu yeni Web, günümüzün Web'inden önemli ölçüde daha hızlı, daha güçlü ve daha kullanışlı olacaktır.


      işbirliği gerekli

      Tabii ki, her şey o kadar basit değil. XML, herkesin kendi yöntemiyle yeni bir dil oluşturmasına izin verir, ancak iyi bir dil oluşturmak, karmaşıklığı hafife alınmaması gereken bir görevdir. Bir dil icat etmek sadece bir başlangıçtır: Bir dil kılavuzu sağlayana kadar etiketlerinizin anlamlarının diğer insanlar tarafından açık ve dilin etiketleriyle çalışan programlar yazana kadar bilgisayarlar tarafından anlaşılır olmasını beklemek saflıktır.

      Bunun neden böyle olduğunu açıklamak zor değil. Bir bilgisayara siparişlerin nasıl işleneceğini öğretmek için yapmanız gereken tek şey etiketleme olsaydı, XML'e gerek kalmazdı. Bilgisayarlar her şeyi kendi başlarına yapabilecek kadar akıllı olduklarından, programcılara bile ihtiyaç duyulmaz.

      Neden XML'e ihtiyacımız var, sihir değil, performans. XML, bir katmanın programlanmasının ayrıntılarını basitleştiren temel kurallar oluşturur - böylece benzer ilgi alanlarına sahip kişiler başka bir somut konuya konsantre olabilir - değiş tokuş etmek istedikleri verileri tam olarak nasıl biçimlendirmek istediklerine ilişkin anlaşmalar. Bu yeni olmasa da çok zor bir problem.

      Ve böyle anlaşmalar olacak çünkü bilgisayar platformlarının artan uyumsuzluğu, hemen hemen tüm faaliyet alanlarında gecikmelere, mali kayıplara ve kafa karışıklığına neden oluyor. İnsanlar, herkesin elinde ne olursa olsun fikirlerini paylaşmak ve iş yapmak istiyor. farklı bilgisayarlar- ve bunun gerçekleşmesi için, özel (farklı faaliyet alanları için) dillerin karşılıklı gelişimi için daha kat edilmesi gereken çok yol var. Bununla birlikte, "ML" ile biten yeni kısaltmaların telaşı, XML'in bilime, ticarete ve eğitime getirdiği inkar edilemez derecede ilerici (yaratıcı) jete tanıklık ediyor.

      XML'de yeni bir biçimlendirme dili oluştururken, yaratıcıları üç şey üzerinde anlaşmalıdır: orada hangi etiketler olacak, nasıl iç içe yerleştirilebilecekler ve nasıl işlenecekler. İlk iki öğe - dil sözlüğü ve yapı - artık DTD (Belge Türü Tanımı) kullanılarak kodlanmıştır. XML standardı, dil geliştiricilerini DTD'leri kullanmaya zorunlu kılmaz, ancak çoğu yeni dilde muhtemelen DTD'ler bulunur, bu da programcıların biçimlendirmeyi anlayan ve ondan yararlı bir şeyler çıkaran programlar yazmasını kolaylaştırır. Ayrıca, tüm etiketlerin anlamlarının insan dilinde açıklandığı kılavuz setlerine de ihtiyacınız olacak. Örneğin, HTML'nin bir DTD'si vardır, ancak HTML'de ayrıca programcıların Web için tarayıcılar ve diğer programlar geliştirirken başvurdukları yüzlerce sayfalık tanıdık kılavuzlar vardır.


      Stil üzerine deneme

      Kullanıcılar için asıl mesele, açıklamasında yazılanlar değil, programın neler yapabileceğidir. Genellikle insanlar, programların XML kodlu bilgileri okunabilir bir şekilde görmelerine izin vermesini tercih eder. Ancak, XML'in etiketlerinde belirtmek için özel bir işaretleme yoktur. verilerin ekranda veya basılı sayfada nasıl sunulması gerektiği.

      Bir kez yazıp her yerde yayınlamak ("bir kez yazıp her yerde yayınlamak") isteyen yayıncılar için en önemli şey, bir yayını "doğurmak" ve ardından onu hem basılı hem de elektronik sayısız yayın türüne "şişelemek". . XML onlara şu şekilde yardımcı olur: içerik, oluşturma ortamından bağımsız olan tanımlayıcı etiketlerle işaretlenir. Ayrıca, yayıncı sözde formda gönderim kuralları düzenleyebilir. stil sayfaları (stil sayfaları), altında çalışmasını otomatik olarak "stillendirir" farklı cihazlar ve ortamlar. Bu amaçla geliştirilen böyle bir XML dili için standart, Genişletilebilir Stil Sayfası Dili (XSL) olarak adlandırılır.

      Son Sürümler tarayıcılar XML belgelerini okuyabilir, uygun stil dosyalarını seçebilir ve bunları ekrandaki bilgileri sıralamak ve biçimlendirmek için kullanabilir. Okuyucu, XML sitelerinin kullanımının daha hızlı ve daha kolay olduğunu fark etmedikçe, HTML ile değil de XML ile uğraştığının farkında bile olmayabilir.

      XSL XML'i Braille veya sesli olarak okumalarına olanak sağladığından, görme engelli kişiler de XSL belge yayınlama ilkelerinden ücretsiz olarak yararlanır. Bu avantajlar başkaları için de geçerlidir: örneğin, arabasının rahatlığında internette gezinmek isteyen bir satıcı, sayfaları sesli olarak dinlemeyi kesinlikle oldukça uygun bulacaktır.

      İlk başta Ağın çekirdeği bilimsel ve eğitici programlar olsa da, bugünün Ağ zaten hızlı bir başlangıç ​​​​için yakıt depolayan bir ticari (yani, ticari beklentiler diyebilirsiniz). Herkes, çevrimiçi satışlardaki artışın neden olduğu son isyanı ve iş adamlarının çevrimiçi olarak ne kadar hızlı etkileşim kurduğunu söylemeye gerek yok. Büyük üreticilerin mal akışları sadece ağda otomasyon istiyor. Ancak günümüzün iş şemaları, karmaşık programdan programa etkileşimler kullanır ve uygulamada bu çok kötü çalışır, çünkü başarılı olmak için işleme süreçlerinde tekdüzelik elde etmekten hâlâ çok uzaktır.

      Yüzyıllar boyunca insanlar standart belgeleri değiş tokuş ederek başarılı bir şekilde iş yapıyorlar: siparişler, faturalar, beyanlar, makbuzlar vb. vesaire. Belgeler iş için çalıştı ve hiç kimse ilgili taraflardan birinin diğerinin iç işleyişini bilmesini istemedi. Herhangi bir belge, tam olarak bilginin alıcısının göstermesi gerektiği kadar gösterildi ve daha fazlası değil. Görünüşe göre belge paylaşımı da Web'de iş yapmanın en iyi yolu. Ancak bu, HTML'nin oluşturulduğu görev değildi.

      Tersine, XML özellikle belge alışverişi amacıyla tasarlanmıştır ve temelinin açık olduğu açıktır. e-ticaretİnternette dolaşan milyonlarca XML belgesi tarafından ifade edilen kurallara güvenecektir.

      Bu nedenle, XML ile geliştirilmiş Web, kullanıcılarının iş yapması için hızlı, kolay ve daha iyi bir yer olmalıdır. Web yöneticileri ve web tasarımcıları için daha da fazla XML gerekir. Programcı orduları için yeni XML dilleri hakkında "sonuna kadar" bilgi gerekli olacaktır. Ve kendi kendini yetiştirmiş bilgisayar korsanlarının [yazarlar kelimenin tam anlamıyla kastediyordu] günleri hala devam etse de, nüfusları şimdiden tehdit altında.

      Yarının web tasarımcısı yalnızca metin ve grafik üretiminde değil, aynı zamanda DTD'lere, veri ağaçlarına, köprü yapılarına, meta verilere ve stil bileşenlerine dayalı katmanlı, birbirine bağlı sistemlerin yapımında da bilgili olmalıdır - güçlü ve gelişmiş ikinci nesil Web altyapı.

      Verileri sunucuya aktarmak için XML kullanma teknolojisini düşünün.

      Verileri sunucuya aktarmanın 2 yolunu zaten düşündük: sınırlayıcı ve JSON içeren düz bir metindir. Ancak dezavantajları var:

      • Veri türlerinin eksikliği. JSON'da yalnızca string, number, null, boolean vardır. Onlar. sınırlı veri kümesi.
      • İletilen verilerin bütünlüğünü kontrol etmek zordur.
      • Verileri görselleştirmek zordur, örn. karmaşık nesnelerÖrneğin, görüntülenmesi zor html formu kod.
      • Verileri dönüştürmek zordur, örn. bir nesnenin özelliklerini başka bir nesnenin özelliklerine dönüştürmek zordur.

      Şimdi veri aktarma yolu olarak XML'e dönelim. xml(Genişletilebilir Biçimlendirme Dili) - yapılandırılmış verileri tanımlamak, depolamak ve aktarmak için tasarlanmış bir biçimlendirme dili. Bugün XML her yerde kullanılmaktadır.

      XML tabanlı birçok teknoloji vardır: DOM (verilerle programatik etkileşim), XLink (işaretçiler ve bağlantılar), XPath (öğelerin tanımı ve seçimi), XSL, XSLT (XML belge dönüşümü).

      XML paketini ayrıştırmak şuna benzer:

      // XMLHttpRequest nesnesi var req= getXmlHttpRequest (); //işleyiciyi yükleme talep onreadystatechange= function () ( if (req. readyState== 4 ) ( // "4 - tamamlandı" belirtin var xml = gerekli yanıtXML; ))

      Burada serileştirme ve seriden çıkarma işlemlerinin bile yapılmasına gerek yoktur. Bu, nesnenin kendisi tarafından yapılır. Sunucu XML verilerini gönderir göndermez, zaten ayrıştırılmıştır (responseXML - DOM belge modeli). Sitedeki önceki makalelerde DOM teknolojisi hakkında daha fazla bilgi edinin.

      Bazen hata ayıklama için XML verilerini seri hale getirmek ve seri durumundan çıkarmak gerekir (verileri sunucuya aktarmak için bu otomatik olarak yapılır, manuel olarak yapmanıza gerek yoktur). Bir dizgeye seri hale getirelim:

      //IE için var str = dom. xml //Firefox için var serializer = new XMLSerializer(); var str = seri hale getirici. serializeToString(dom);

      IE için çalışma kodu daha kısadır. diğer tarayıcılarda serileştirme için yalnızca bir XMLSerializer nesnesi bulunurken, yerleşik serileştirme için zaten bir nesneye sahiptir.

      XML verileriyle çalışırken genellikle belgenin DOM modeliyle ilgileniriz. Bu nedenle, DOM'un bazı noktalarını hatırlamaya değer (bu konuyu önceki makalelerde okuyun). Size sadece modelin DOM öğesine erişmenin yollarını hatırlatayım:

      //kök eleman var kökü = xmlDOM. belge Öğesi; //koleksiyondaki ilk eleman varbook = kök. çocukDüğümler[ 0 ]; //alt eleman var başlık = kitap. çocukDüğümler[ 0 ]; // eleman metin düğümü alert(title.firstChild.nodeValue);

      Belge modelinin DOM'sinden aynı türdeki öğeleri de seçebilirsiniz. Dikkat! getElemensById işlevleri - hayır, çünkü XML'de id, yalnızca bir tanımlayıcı değil, herhangi bir anlama gelebilir, bu nedenle kullanılmaz.

      //aynı etikete sahip tüm elemanları seç var kitaplar = xmlDOM. getElementsByTagName("kitap");

      XML, yalnızca verileri temsil etmek için değil, aynı zamanda sunucu odaklı bir mimaride veri alışverişi için de aktif olarak kullanılır. Bu, karmaşık bir uygulamayı klasik bir istemci-sunucu uygulaması olarak değil, her biri kendi görevlerinden sorumlu bir dizi hizmet (hizmetler) olarak sunduğumuz bir yaklaşımdır. Ve her hizmetin giriş noktaları (etkileşim noktaları) vardır. Burada net bir müşteri yok, çünkü bir hizmet başka bir hizmetin müşterisi olabilir. Böyle dağıtılmış bir teknoloji ortaya çıkıyor. Bu tür teknolojileri oluşturmak için çeşitli yaklaşımlar vardır - uzaktan prosedür çağrısı, SOAP.

      Farklı müşterilerin hizmetlerinin etkileşime girebilmesi için aynı dili konuşmaları gerekir (hangisi olduğu önemli değildir). işletim sistemi serviste). Ve böyle bir dil geliştirildi ve RPC olarak adlandırıldı.

      XML-RPC protokolü

      RPC(Uzaktan Prosedür Çağrısı) - uzaktan prosedür çağrısı. İki uzak nokta arasındaki iletişim protokolüdür. "a" noktasının "b" uzak noktasındaki bir işlevi çağırmasına izin verir.

      RPC protokolünün birkaç uygulaması vardır. XML tabanlı bir uygulama düşünün.

      Aslında, istemci ve sunucu sadece bazı XML parçalarını değiş tokuş eder.

      XML-RPC sağlar aşağıdaki türler veri:

      • boole
      • tamsayı.
      • çift.
      • sicim.
      • tarih/saat.
      • temel64.
      • sıralamak.
      • yapı
      • hükümsüz.

      Onlar. belirli bir veri türünü geçirirken, bunun ne tür bir veri olduğunu bildirmeniz gerekir. Yapı bir JSON nesnesi gibidir.

      XML Veri Dönüşümü

      XSLT, sunucudan alınan verileri XML olarak dönüştürmek için kullanılır.

      XSLT(eXtendable Stylesheet Language Transformation), XML'i girdi olarak almaya ve çıktıda herhangi bir şey oluşturmaya yardımcı olan bir teknolojidir.

      XSLT'yi javaScript'e dönüştürme - IE

      var dom = new ActiveXObject("MSXML2.DOMDocument"); dom. zaman uyumsuz = yanlış dom var xsl = yeni ActiveXObject(" [e-posta korumalı]"); xsl.async = false; xsl.load("my.xsl" ); //dönüşümün kendisi var sonuç = dom. transformNode(xsl);

      XSLT'yi Firefox için javaScript'e dönüştürün. Chrome, Opera

      varxslStylesheet; var xsltProcessor var myXMLHTTPRequest = mew XMLHttpRequest(); myXMLHTTPRequest. open("GET", "example.xsl", false); myXMLHTTPRequest. gönder(boş); //xml xslStileshett'i al = myXMLHTTPRequest. yanıtXML; xsltProcessor myXMLHTTPRequest = yeni XMLHttpRequest(); myXMLHTTPRequest. open("GET", "example.xml", false); myXMLHTTPRequest. gönder(boş); //dönüşümün kendisi var xmlSource = myXMLHTTPRequest. yanıtXML; var sonuçBelge = xsltProcessor. transformToDocument(xmlSource);

      Uygun İşaretlemeye Giriş

      xml araç Genişletilebilir İşaretleme Dili,Üzerinde odaklanarak işaretleme(işaretleme). Metin oluşturabilir ve sarma etiketleriyle işaretleyerek her kelimeyi, cümleyi veya parçayı tanımlanabilir, sıralanabilir bilgilere dönüştürebilirsiniz. oluşturduğunuz dosyalar veya belge örnekleri, öğelerden (etiketler) ve metinden oluşur ve öğeler, belgeyi kağıt üzerinde okurken veya hatta işlerken doğru şekilde anlamaya yardımcı olur. elektronik formatta. Tanımlayıcı öğeler ne kadar fazlaysa, belgenin o kadar çok bölümü tanımlanabilir. İşaretlemenin ilk günlerinden itibaren avantajlarından biri, bir kayıp durumunda bilgisayar sistemi baskılı veri etiketler sayesinde okunabilir durumda kalır.

      İşaretleme dilleri, şirketler ve devlet kurumları tarafından oluşturulan ilk biçimlerden Standart Genelleştirilmiş İşaretleme Dili (SGML), Köprü Metni İşaretleme Dili (HTML) ve nihayetinde XML'e geçmiştir. SGML karmaşık görünebilir ve HTML (temelde ilk başta sadece bir öğeler koleksiyonuydu) bilgiyi tanımlayacak kadar güçlü değildi. XML, kullanımı kolay ve genişletilebilir bir biçimlendirme dili olarak tasarlanmıştır.

      XML'de, veri parçalarını doğru bir şekilde temsil etmenizi sağlayan kendi öğelerinizi oluşturabilirsiniz. Belgeler yalnızca paragraflara ve başlıklara bölünemez, aynı zamanda belge içindeki herhangi bir parçayı da seçebilir. Etkili olmak için, öğelerinizin sınırlı bir listesini tanımlamanız ve ona bağlı kalmanız gerekir. Öğeler, aşağıda kısaca tartışılacak olan bir Belge Türü Tanımında (DTD) veya bir şemada tanımlanabilir. XML'de uzmanlaşıp kullanmaya başladığınızda, gerçek dosyalar oluştururken öğe adlarını denemekten korkmayın.

      XML Belgesi Oluşturma

      Belirtildiği gibi, XML dosyaları metin ve işaretlemeden oluşur. Metnin çoğu, metnin etiketlerle çevrelendiği öğelere yerleştirilir. Örneğin, bir yemek kitabı oluşturmak istediğinizi varsayalım. XML biçimi. adında bir tarifimiz var. Sundae dondurma XML'e dönüştürülecek. Tarifin adını işaretlemek için metnini etiketlerle başlayan ve biten bir öğenin içine alıyoruz. Bu öğeye tarif adı denilebilir. Bir öğenin başlangıç ​​etiketini işaretlemek için adını köşeli parantez içine alın<>), bunun gibi: . Ardından Dondurmalı Dondurma metnini girin. Metinden sonra, içindeki öğenin adı olan kapanış etiketini koyun. açılı ayraçlar, artı öğe adının önünde eğik çizgi (/) ile biten bir öğe, şöyle:. Bu etiketler formu eleman, metin ve hatta diğer öğeleri girebileceğiniz.

      Öğe adları, hem tek tek belgeler hem de belge grupları için oluşturulabilir. Gereksinimlerinize göre, elemanlar için uyulması gereken kuralları belirleyebilirsiniz. Öğeler kesinlikle belirli veya oldukça genel olabilir. Kurallar ayrıca her öğeye neyin dahil edilmesine izin verildiğini de tanımlamalıdır. Katı, gevşek veya orta düzeyde olabilirler. Belgenizin önemli olduğunu düşündüğünüz kısımlarını tanımlayan öğeler oluşturmanız yeterlidir.

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

      Bir XML belgesinin ilk satırı bir XML bildirimi olabilir. Dosyanın bu isteğe bağlı kısmı, dosyayı bir XML dosyası olarak tanımlar; bu, otomatikleştirilmiş araçların ve insanların dosyayı SGML veya diğer biçimlendirme yerine XML olarak tanımasına yardımcı olabilir.

      Deklarasyon aynen şöyle görünebilir veya XML sürümünü dahil edin ( ) ve hatta karakter kodlaması, örneğin,Unicode için. Bu bildirim dosyanın en başında olması gerektiğinden, küçük XML dosyalarını daha büyük bir dosyada birleştirmeyi planlıyorsanız, bu isteğe bağlı öğeyi atlamak en iyisidir.

      Kök öğeyi oluşturma

      Kök öğenin başlangıç ​​ve bitiş etiketleri, XML belgesinin tüm gövdesini çevreler. Dosyada yalnızca bir kök öğe olmalıdır ve bu onun için gerekli olan "dış görünüm"dür. burada kök öğeyle kullandığım örneğin bir parçasını gösterir (yemek tarifi). ( Tam dosya XML'de verilmiştir.)

      Listeleme 1. Kök öğe

      Belgenizi oluştururken, arasına metin ve ek etiketler yerleştireceksiniz. Ve .

      elementlerin isimleri

      Etiketlerde Büyük/Küçük Harf Duyarlılığı

      XML oluştururken, başlangıç ​​ve bitiş etiketlerinin durumu eşleşmelidir. Aksi takdirde, XML'i kullanırken veya görüntülerken hata alabilirsiniz. Örneğin, büyük/küçük harf uyuşmazlığı varsa Internet Explorer metni göstermez. Bunun yerine, başlangıç ​​ve bitiş etiketleri arasındaki uyumsuzlukla ilgili mesajları görüntüler.

      Yani bir kök elemanımız var. . XML'de öncelikle elemanların isimleri seçilir ve daha sonra bu isimlere göre uygun eleman belirlenir. DTD açıklaması veya şema. Adlar harfler, sayılar ve alt çizgi (_) gibi özel karakterler içerebilir. Hatırlanması gereken bazı adlandırma kuralları şunlardır:

      • Öğe adlarında boşluklara izin verilmez.
      • İsimler bir harfle başlamalıdır, sayı veya işaretle değil. (Bu ilk harften sonra herhangi bir harf, sayı ve geçerli karakter kombinasyonu kullanılabilir.)
      • Büyük/küçük harf farketmez, ancak karışıklığı önlemek için dikkatli olun.
      Listeleme 2. Diğer unsurlar
      Sundae dondurma 5 dakika

      Bir XML belgesi, içinde hiçbir şey olmayan boş etiketler içerebilir ve bir çift başlangıç ​​ve bitiş etiketi yerine tek bir etiket olarak ifade edilebilir. Örneğin, tek başına bir etiket olabilir. HTML stili . Herhangi bir alt öğe veya metin içermez, dolayısıyla boş bir öğedir ve şu şekilde yazılabilir: (bir boşluk ve tanıdık eğik çizgi ile).

      Yuvalama öğeleri

      ek elemanların diğer elemanların içine yerleştirilmesidir. Bu yeni öğelere denir iştirakler elementler ve onları çevreleyen elementler - onların ebeveyn elementler. Kök öğeye iç içe birden çok öğe. Bunlar iç içe alt öğelerdir , Ve Bir elemanın içinde birden çok özdeş alt öğe var . Yuvalama, bir XML belgesini çok düzeyli yapabilir.

      Tipik sözdizimi hatasıüst ve alt öğelerin iç içe geçmesiyle ilgili. Her alt öğe, tamamen üst öğesinin başlangıç ​​ve bitiş etiketleri arasına yerleştirilmelidir. Alt öğeler, bir sonraki alt öğenin başlangıcından önce bitmelidir.

      Doğru yerleştirme örneği içinde verilmiştir. Etiketler olmadan başlar ve biter örgü diğer etiketlerle.

      Listeleme 3. XML öğelerinin uygun şekilde iç içe yerleştirilmesi.
      Sundae dondurma 3 çikolata şurubu veya çikolatalı şekerleme 1 Fındık 1 Kiraz 5 dakika

      Nitelikler Ekleme

      Öğeler bazen eklenir Öznitellikler. Nitelikler, değerin çift tırnak içine alındığı (") bir ad-değer çiftinden oluşur, örneğin: type="dessert" . Nitelikler, öğeyle birlikte kaydetmenize olanak tanır Ekstra seçenekler, bu parametrelerin değerlerini aynı belgede öğeden öğeye değiştirerek.

      Bir öğenin başlangıç ​​etiketinin içinde bir öznitelik veya hatta birden çok öznitelik belirtilir: . Birden fazla özellik eklerken, bunlar boşluklarla ayrılır: . XML dosyasını şimdi göründüğü gibi gösterir.

      Listeleme 4. Öğeleri ve nitelikleri içeren XML dosyamız
      Sundae dondurma 5 dakika

      Herhangi bir sayıda nitelik kullanabilirsiniz. Belgenize hangi ayrıntıları ekleyebileceğinizi düşünün. Nitelikler, özellikle belgeler saklanacaksa yararlıdır - örneğin, tarif türüne göre. Nitelik adları, boşlukları hariç tutmak ve adları bir harfle başlatmak için aynı kurallarla, öğe adlarıyla aynı karakterleri içerebilir.

      İyi biçimlendirilmiş ve hatalı biçimlendirilmiş XML

      Yapınızda tanımlanan kurallara uyarsanız, iyi biçimlendirilmiş XML kodunu kolayca oluşturabilirsiniz. Doğru XML XML'in tüm kurallarına göre derlenen XML kodudur: uygun öğe adlandırma, iç içe yerleştirme, öznitelik adlandırma vb.

      XML ile ne yaptığınıza bağlı olarak, iyi biçimlendirilmiş XML ile çalışmanız gerekebilir. Yukarıdaki tarif türüne göre sıralama örneğini düşünün. unsurların olması gereklidir. bir tür özniteliği içeriyordu. Kodu başarılı bir şekilde test edebilmek ve bu özelliğin değerinin her zaman mevcut olduğundan emin olmak çok önemlidir.

      doğrulama altında belge yapısının kendisi için belirlenmiş kurallara uygunluğunun kontrol edilmesi ve her üst öğe için alt öğelerin belirlenmesi olarak anlaşılmaktadır. Bu kurallar şu şekilde tanımlanır: Belge türü açıklaması(DTD) veya şema. Bu doğrulama, bir DTD veya şema oluşturmanızı ve ardından XML dosyalarınızdaki DTD veya şema dosyasına başvurmanızı gerektirir.

      Doğrulamayı etkinleştirmek için, XML belgelerinizin başına yakın bir Belge Türü Bildirimi (DOCTYPE) yerleştirmeniz gerekir. Bu dize, bu belgeyi doğrulamak için kullanılacak DTD'ye veya şemaya (öğeler ve kurallar listesi) bir başvuru içerir. DOCTYPE dizesi, in gibi bir şey olabilir.

      Listeleme 5. DOCTYPE

      Bu örnek, öğe listesi dosyanızın adlandırılmış olduğu anlamına gelir. dosyaadı.dtd bilgisayarınızda bulunur (yani, genel KAMU dizininde değil, SİSTEM dizininde).

      Varlıkları kullanma

      Varlıklar metin parçaları veya özel karakterler olabilir. Belgenin içinde veya dışında belirtilebilirler. Varlıkların, hatalardan kaçınmak ve doğru şekilde görüntülenmesi için uygun şekilde bildirilmesi ve ifade edilmesi gerekir.

      Özel karakterleri doğrudan metne giremezsiniz. Metinde özel karakterler kullanmak için bunları birer varlık haline getirmeniz ve bu karakterlerin kodlarını kullanmanız gerekir. Tümceleri bir şirket adı gibi varlıklar olarak tanımlayabilir ve ardından bunları metin boyunca kullanabilirsiniz. Bir varlık oluşturmak için, ona bir ad verin ve bu adı yapıştırın ve bu adı metne bir ve işaretinden (&) sonra noktalı virgülle - örneğin (veya başka bir adla) yapıştırın. Ardından bu kodu DOCTYPE satırınıza ekleyin. köşeli parantez(), nasıl . Bu kod, varlık yerine geçen metni tanımlar.

      Listeleme 6. Varlık

      Varlıkların kullanılması, aynı ifadenin veya bilginin tekrar tekrar tekrarlanmasını önlemeye yardımcı olur. Ayrıca, varlık tanımı dizesini değiştirerek aynı anda birçok yerde metin düzenlemeyi (örneğin, bir şirket adını değiştirirse) kolaylaştırabilir.

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

      XML dosyalarının nasıl oluşturulacağını öğrenirken, biçimsel olarak doğru olduklarından ve XML kurallarına uyulduğundan emin olmak için bunları bir XML düzenleyicide açın. Örneğin, Windows® Internet Explorer®'ınız varsa, XML dosyanızı bir tarayıcıda kolayca açabilirsiniz. Öğeleriniz, öznitelikleriniz ve metniniz görüntüleniyorsa, XML dosyası iyi biçimlendirilmiştir. Hatalar varsa, muhtemelen sözdiziminde bir şeyleri karıştırmışsınızdır ve belgenizde yazım hataları veya eksik etiketler ve noktalama işaretleri olup olmadığını dikkatlice kontrol etmeniz gerekir.

      Çözüm

      Birkaç şey öğrendikten sonra Basit kurallar, kendi XML öğelerinizi ve niteliklerini tasarlama esnekliğine sahipsiniz. XML kuralları karmaşık değildir. Bir XML belgesi yazmak da kolaydır. Anahtar, sıralama ve arama yetenekleri açısından belgelerden ne istediğinizi anlamak ve ardından bu gereksinimleri karşılayacak öğeleri ve nitelikleri tasarlamaktır.

      Amacı iyi anladığınızda ve metninizi nasıl işaretleyeceğinizi bildiğinizde, etkili öğeler ve nitelikler oluşturabilirsiniz. Bu bakış açısından, iyi biçimlendirilmiş ve kullanılabilir bir XML belgesi oluşturmak için gereken tek şey dikkatli işaretlemedir.