Untuk apa fail Xml? Sepuluh Peraturan XML yang Anda Perlu Tahu. Kemungkinan ralat semasa membuka fail XML sebagai lampiran e-mel

Mengapakah XML ini diperlukan?

[DALAM Kebelakangan ini, berkaitan dengan kemunculan halaman ini, yang paling kerap
Soalan untuk saya ternyata: "Beritahu saya, mengapa ia diperlukan sama sekali, XML?
Tidakkah HTML cukup untuk kita? "Tidak mempunyai banyak masa (atau kecerdasan;) untuk menyediakan penerbitan saya sendiri, dan juga sangat menghormati karya klasik, saya lebih suka menterjemah dengan cepat artikel yang sangat baik mengenai tajuk tajuk.
- mungkin ini adalah episod pertama siri "untuk membantu"]

Jon Bosak, Tim Bray
XML dan Web Generasi Kedua
daripada Scientific American, Mei 1999

Beri orang beberapa petua, dan mereka akan memikirkan selebihnya sendiri. Melihat halaman, di mana blok teks yang lebih besar dibahagikan kepada yang lebih kecil, semua orang dengan cepat menyedari bahawa ini adalah permulaan artikel. Melihat senarai barangan runcit, anda boleh meneka dengan cepat bahawa ini adalah "arahan" untuk melawat kedai. Apabila anda melihat lajur nombor, anda faham bahawa ini ialah akaun bank. Komputer masih belum begitu pintar - semua ini perlu disampaikan kepada mereka dengan tepat - apa sebenarnya yang perlu mereka tangani dan apa yang diperlukan daripada mereka untuk ini.

Ia adalah untuk tujuan ini - untuk membuat maklumat menggambarkan diri - bahawa ia dicipta bahasa baharu penanda dokumen - Boleh dipanjangkan Bahasa penanda(XML). Perubahan yang mudah disebut ini (dokumen "yang diterangkan sendiri", perubahan dalam peraturan komunikasi dengan komputer) membawa potensi yang sangat besar - peranan Internet daripada medium penyampaian maklumat mula berkembang kepada jenis aktiviti manusia yang lain. Sememangnya, sejak diluluskan oleh W3C pada tahun 1998, spesifikasi XML mula menembusi di mana-mana seperti kebakaran - ke dalam industri dan sains, ke dalam pengeluaran barangan dan perubatan.

Peminat berharap XML akan memberi peluang untuk menyelesaikan beberapa masalah global Web. Masalah ini diketahui: pertama, Internet, rangkaian yang sangat pantas, selalunya berkelakuan lebih teruk daripada kura-kura; dan kedua, walaupun hampir semua maklumat tersedia di Internet, selalunya sukar untuk mencari sesuatu yang diperlukan di sana.

Kedua-dua masalah ini disebabkan terutamanya oleh sifat bahasa utama Web - HTML. Dan walaupun kejayaan HTML ke atas bahasa penerbitan elektronik lain yang pernah dicadangkan adalah jelas, HTML terlalu jarang: ia pada asasnya hanya memberitahu penyemak imbas cara meletakkan teks, imej dan butang pada halaman. HTML memberi tumpuan kepada pembentangan maklumat dan oleh itu agak mudah dipelajari, tetapi ia memerlukan kos.

Ini dicerminkan dalam kerumitan membangunkan tapak web, melainkan tapak ini dimaksudkan untuk menjadi seperti mesin faks, menghantar halaman kepada sesiapa yang bertanya. Lebih separuh daripada orang dan syarikat di seluruh dunia akan memilih tapak web yang boleh menerima pesanan daripada pengguna, menghantar diagnosis penyakit, dan juga menjalankan operasi instrumental yang rumit di tingkat kilang dan makmal saintifik. Tugasan sedemikian _PERNAH_ dihadapi oleh HTML!.

Sebagai contoh, walaupun doktor anda boleh "mengekstrak" ujian yang diambil daripada kad perubatan anda ke dalam penontonnya, tidak mungkin dia akan dapat menghantarnya melalui rangkaian kepada pakar lain untuk memasukkan semula jawapan yang diterima ke dalam pangkalan data. Komputernya tidak tahu apa yang perlu dilakukan dengan maklumat yang sejelas kepadanya

lebah lebah

atau lebah lebah.
Kernighan legenda pernah menyatakan bahawa keseluruhan helah prinsip WYSIWYG (apa yang saya lihat adalah apa yang saya dapat) ialah apabila anda tidak melihat apa-apa, anda biasanya berjaya mendapatkan jumlah yang sama.

Perkataan di atas yang disertakan dalam kurungan sudut dipanggil tag. Tiada teg parsing dalam HTML, dan oleh itu kelemahannya yang lain: ketidakfleksibelan. Menambah teg baharu pada sesuatu bahasa adalah perkara yang birokrasi, terlalu panjang sehingga tiada siapa yang akan mengganggunya. Tetapi adalah baik untuk setiap program mempunyai tag sendiri, bukan hanya satu dalam contoh dengan doktor.

Ini sebahagian besarnya menerangkan kadar perlahan semasa penciptaan kedai dalam talian, katalog pesanan mel dan tapak interaktif lain. Jika anda menukar bilangan unit pesanan dan kaedah penghantaran, dan melihat beberapa nombor berubah dalam medan "jumlah", anda masih perlu meminta pelayan jauh (sudah terlalu banyak bekerja) menghantar anda kembali halaman yang baru dijana dengan grafik. dan segala-galanya. Sedangkan anda sendiri komputer berkuasa akan terbiar kerana dia baru belajar sesuatu seperti

Dan , tetapi bukan harga dengan pilihan penghantaran.

Tambah pada ini kualiti rendah keupayaan carian Web. Memandangkan tiada cara untuk menandakan maklumat harga secara khusus, adalah mustahil untuk melakukannya carian sesawang halaman berdasarkan "harga".


Sesuatu yang lama, sesuatu yang baru

Pada dasarnya, penyelesaiannya mudah: teg perlu menunjukkan jenis maklumat itu, dan bukannya rupa yang sepatutnya. Contohnya, tandakan komponen pesanan untuk baju dengan teg "harga, saiz, kuantiti, warna," dan bukannya "tebal, perenggan, baris, lajur," seperti yang dicadangkan dalam HTML. Kemudian lebih mudah bagi program untuk mengenal pasti dokumen sebagai pesanan dan melakukan kerja yang lain: paparkan pesanan ini dalam satu bentuk atau yang lain, letakkannya melalui sistem perakaunan atau pastikan baju baharu itu dihantar ke depan pintu anda hari berikutnya.

kami, kerja berkumpulan W3C, pada tahun 1996, mula membangunkan projek sedemikian. Idea itu kuat, walaupun tidak sepenuhnya asli. Selama beberapa generasi, editor dan pencetak telah melabelkan teks tulisan tangan nota untuk penyetel taip. "Bahasa penanda" ini berkembang secara bebas sehingga tahun 1986, apabila, sebagai hasil daripada kerja sepuluh tahun, Pertubuhan Standardisasi Antarabangsa (ISO) memperkenalkan sistem untuk mencipta bahasa penanda baharu.

Diberi nama SGML (Bahasa Penanda Umum Standard), bahasa penerangan bahasa ini - bahasa metalurgi - telah membuktikan kegunaannya dalam banyak sistem yang besar penyediaan penerbitan. Malah HTML mendapat definisinya melalui SGML. Satu-satunya kesukaran dengan SGML ialah ia adalah omnivor - terdapat banyak perkara bijak di sana untuk meminimumkan ketukan kekunci, kerana pada masa itu setiap bait dikira. Itulah sebabnya pelayar web hari ini tidak berfungsi dengan baik dengannya.

Dalam mencipta XML, kumpulan kerja kami menanggalkan SGML daripada sekamnya dan mencadangkan bahasa metal yang sangat disasarkan dan mudah dihadam. Pangkalan XML ialah satu set peraturan, yang dipandu oleh sesiapa sahaja boleh mencipta bahasa penanda mereka sendiri. Peraturan ini dipilih supaya satu atur cara kecil (juga dipanggil penghurai atau penganalisis sintaks) boleh mengatasi pengiktirafan mana-mana bahasa baharu. Mari kita lihat semula contoh doktor yang ingin memindahkan ujian kepada pakar. Jika profesional perubatan membina bahasa penanda mereka sendiri daripada XML untuk menyandikan nota doktor (beberapa kumpulan telah mengusahakan masalah itu untuk masa yang lama), maka mesej daripada doktor kepada rakan sekerjanya mungkin mengandungi sesuatu seperti


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

Dalam tetapan ini, tidak lagi sukar untuk menulis program untuk komputer sewenang-wenangnya supaya ia dapat mengenali rekod perubatan piawai ini dan dapat memasukkan ini secara literal yang penting. maklumat penting ke pangkalan data anda.

Sama seperti HTML direka untuk membolehkan sesiapa sahaja membaca dokumen Internet, XML memberi kami Esperanto yang boleh dibaca dan ditulis oleh sesiapa sahaja, walaupun terdapat platform yang tidak serasi. Ya, walaupun dari sudut pandangan orang biasa, XML mempunyai lebih banyak beban semantik (tidak seperti format data lain), kerana tiada apa-apa di dalamnya yang kelihatan seperti teks yang tidak boleh dibaca.

Kuasa kepelbagaian XML datang daripada set minimum peraturan yang dipilih dengan baik. Pertama, teg sentiasa membentuk pasangan, mengelilingi teks yang digunakan dengan kurungan. Kedua, tag berpasangan boleh bersarang di dalam satu sama lain seperti tanda petikan, membolehkan anda membina struktur berbilang peringkat yang kompleks.

Peraturan bersarang secara automatik menguatkuasakan kesederhanaan dalam mana-mana dokumen XML, menghasilkan struktur yang dikenali dalam sains komputer sebagai pokok. Sama seperti salasilah keluarga, sebarang grafik atau elemen teks dokumen terdapat bapa, anak lelaki atau abang (ibu bapa, anak, adik beradik) daripada unsur lain, dan hubungan persaudaraan ini sentiasa jelas. Sudah tentu, pokok tidak menerangkan keseluruhan pelbagai struktur data, tetapi ia merangkumi kebanyakan kes penggunaan komputer yang biasa. Di samping itu, pokok sangat mudah untuk pengaturcara. Tiada masalah untuk menulis sekeping kecil kod untuk menyusun semula transaksi atau memaparkan resit yang boleh difahami sepenuhnya apabila resit diwakili sebagai pokok.

Sumber kedua kuasa sejagat XML adalah berdasarkan standard baru Unicode ialah sistem pengekodan yang membolehkan teks dicampur dalam semua bahasa utama dunia. Sebaliknya, dalam HTML, seperti dalam kebanyakan pemproses perkataan, dokumen, sebagai peraturan, hanya boleh dalam satu bahasa tertentu, tidak kira yang mana - Inggeris, Jepun atau Arab.
Dan jika program tidak mengetahui pengekodan bahasa tertentu, anda boleh melupakan dokumen (dalam HTML). Ia boleh menjadi lebih teruk: contohnya, disebabkan pengekodan yang tidak konsisten, program yang ditulis di Taiwan selalunya tidak dapat membaca teks yang ditujukan kepada tanah besar China. Dalam kes XML, jika program tahu cara untuk bekerja dengannya dengan betul, ia boleh mengendalikan sebarang gabungan pengekodan. Oleh itu, XML bukan sahaja membenarkan data ditukar antara platform komputer yang berbeza, tetapi juga memungkinkan untuk mengatasi halangan negara dan budaya.


Berakhirnya penantian sejagat ( Seluruh Dunia tunggu)

Dengan kebangkitan XML, Web seharusnya menjadi lebih responsif. Hari ini, semua yang boleh dilakukan oleh peranti komputer pada rangkaian, tidak kira sama ada ia adalah desktop yang berkuasa atau penganjur poket, tidak lebih daripada menerima borang melalui "GET", mengisinya, kemudian menghantarnya berulang-alik ke pelayan web sambil bekerja dengan borang tidak akan dilengkapkan. XML memberi kami keupayaan untuk menyampaikan struktur dan semantik data ke dalam bentuk, dan oleh itu semua peranti tersebut boleh melakukan pemprosesan asas di tempat yang betul dan serta-merta. Ini bukan sahaja akan mengurangkan beban pada pelayan, tetapi juga harus membawa kepada pengurangan ketara dalam trafik rangkaian.

Untuk menggambarkan, bayangkan menggunakan agensi pelancongan dalam talian untuk mencari penerbangan dari London ke New York pada 4 Julai. Kemungkinan besar, anda akan melihat senarai beberapa kali lebih lama daripada yang boleh dimuatkan pada skrin. Senarai ini boleh dipendekkan dengan menetapkan parameter yang lebih tepat seperti masa berlepas, harga atau syarikat penerbangan, tetapi dalam kes ini anda hanya "memuatkan" pelayan agensi pelancongan dengan permintaan anda dan perlu menunggu jawapan. Walau bagaimanapun, jika senarai panjang penerbangan ini diberikan kepada anda dalam XML, maka biro boleh mengiringinya dengan applet Java kecil, dengan bantuan yang anda boleh dengan serta-merta dan mudah menyusun dan menapis yang tidak perlu, tanpa menggunakan sebarang interaksi dengan pelayan. Darabkan ini dengan berjuta-juta pengguna Web, dan kesan keseluruhannya mengagumkan.

Lebih banyak maklumat rangkaian akan ditandakan dengan tag XML "industri", lebih mudah untuk mencari apa yang anda cari. Hari ini, carian di Internet untuk "pekerjaan untuk broker saham" akan membanjiri anda dengan banyak iklan, tetapi mungkin hanya terdapat beberapa daripada mereka tentang kerja - kebanyakannya kerja itu disembunyikan papan percuma iklan di laman akhbar yang robot carian tidak suka bekerja dengannya. Dan kini Persatuan Akhbar Amerika sedang mencipta bahasa penanda iklannya sendiri dalam XML, yang menjanjikan untuk menjadikan proses carian lebih cekap.

Tidak mengapa jika ia hanya satu langkah perantaraan. Pustakawan telah lama mengetahui cara untuk mencari sesuatu dengan cepat - dengan tidak melihat pada dokumen, tetapi pada huraian utama mereka yang padat, yang hanya menunjuk kepada sumber itu sendiri. Iaitu, ini adalah katalog dengan sampel dalam bentuk kad perpustakaan. Maklumat sedemikian tentang maklumat dipanggil "metadata".

Oleh itu dari awal lagi peranan penting Projek XML memberi tumpuan kepada mencipta standard metadata yang disertakan. Rangka Kerja Penerangan Sumber (RDF) Februari harus memainkan peranan yang sama seperti yang dilakukan oleh kad indeks untuk buku perpustakaan untuk mendapatkan maklumat di Web. Memandangkan metadata RDF merebak ke seluruh Web, ia akan menjadikan carian lebih pantas dan lebih relevan daripada sekarang. Tiada pustakawan di Web, tetapi setiap juruweb juga mahu tapaknya mudah ditemui, jadi kami menjangkakan RDF, apabila orang ramai menemui kuasanya, akan memberi impak yang besar di Internet.

Sudah tentu, maklumat boleh diperoleh tanpa mencari. Lagipun, Web adalah hiperteks - berbilion-bilion halaman yang penuh dengan hiperpautan - perkataan bergaris bawah yang anda hanya perlu klik untuk dibawa ke beberapa halaman lain. Dalam XML, mekanisme hiperpautan juga sangat dipertingkatkan. Spesifikasi pemautan XML, dipanggil XLink, yang W3C sedang sediakan menjelang akhir tahun, akan membolehkan pengguna memilih daripada berbilang destinasi. Jenis hiperpautan lain akan membolehkan anda menerima teks atau imej terus pada titik klik, membenarkan pelawat tidak meninggalkan halaman.

Mungkin bahagian XLink yang paling berguna akan menjadi sebahagian daripada spesifikasi yang membolehkan pengarang menggunakan pautan tidak langsung, menghantar bukannya halaman itu sendiri ke beberapa jenis pangkalan data ringkasan. Jadi, jika pengarang telah menukar alamat halaman, dengan hanya mengedit satu entri dalam pangkalan data sedemikian, adalah mudah untuk mengemas kini semua pautan yang menuju ke halamannya. Ini akan membantu anda menyingkirkan mesej "404 File Not Found" yang semakin biasa yang menunjukkan pautan "pecah".

Gabungan lebih pemprosesan yang cekap, lagi carian yang tepat dan ketersambungan yang lebih fleksibel akan merevolusikan struktur Web dan membuka kaedah baharu sepenuhnya untuk mengakses maklumat. Bagi pengguna, Rangkaian baharu ini akan menjadi lebih pantas, lebih berkuasa dan lebih berguna daripada Rangkaian hari ini.


Kerjasama diperlukan

Sudah tentu, tidak semuanya begitu mudah. XML membenarkan sesiapa sahaja untuk mereka bentuk bahasa baharu dengan cara mereka sendiri, tetapi mencipta bahasa yang baik ialah tugas yang kesukarannya tidak boleh dipandang remeh. Mencipta bahasa hanyalah permulaan: adalah naif untuk mengharapkan makna teg anda jelas kepada orang lain sehingga anda menyediakan manual untuk bahasa itu dan jelas kepada komputer sehingga anda menulis program yang berfungsi dengan tag bahasa.

Tidak sukar untuk menjelaskan mengapa ini berlaku. Jika semua yang diperlukan untuk mengajar komputer memproses pesanan adalah teg, maka XML tidak akan diperlukan. Tidak akan ada keperluan untuk pengaturcara, kerana komputer cukup pintar untuk melakukan segala-galanya sendiri.

Mengapa kita memerlukan XML bukanlah sihir, tetapi kecekapan. XML menetapkan peraturan asas yang memudahkan butiran pengaturcaraan dalam satu lapisan - supaya orang yang mempunyai minat yang sama boleh menumpukan perhatian pada kacang keras yang lain untuk dipecahkan - perjanjian tentang cara mereka mahu memformat data yang ingin ditukar. Ini adalah masalah yang sangat sukar, walaupun bukan perkara baru.

Dan akan ada perjanjian sedemikian, kerana ketidakserasian platform komputer yang semakin meningkat mengakibatkan kelewatan dalam tarikh akhir, kerugian kewangan dan membawa kepada kekeliruan dalam hampir semua bidang aktiviti. Orang ramai ingin bertukar idea dan menyelesaikan sesuatu, tanpa mengira hakikat bahawa setiap orang mempunyai komputer yang berbeza - dan untuk ini menjadi kenyataan, pembangunan bersama swasta (untuk kawasan yang berbeza aktiviti) bahasa masih akan datang jarak jauh. Walau bagaimanapun, kesibukan akronim baharu yang berakhir dengan "ML" menunjukkan semangat inovatif yang tidak dapat dinafikan yang dibawa oleh XML kepada sains, perniagaan dan pendidikan.

Apabila membuat bahasa penanda XML baharu, penciptanya mesti bersetuju dengan tiga perkara: apakah teg yang akan ada, cara ia boleh bersarang antara satu sama lain dan cara ia harus diproses. Dua mata pertama - kamus dan struktur bahasa - kini dikodkan menggunakan DTD (Document Jenis Definisi). Piawaian XML tidak mewajibkan pembangun bahasa untuk menggunakan DTD, tetapi kebanyakan bahasa baharu berkemungkinan mempunyai penerangan DTD - ia memudahkan pengaturcara untuk menulis program yang memahami markup ini dan mengeluarkan sesuatu yang masuk akal daripadanya. Kami juga memerlukan set manual yang menerangkan maksud semua teg dalam bahasa manusia. Sebagai contoh, HTML mempunyai penerangan DTD, tetapi terdapat juga ratusan halaman manual HTML biasa yang dirujuk oleh pengaturcara semasa membangunkan penyemak imbas dan atur cara lain untuk Web.


Esei tentang gaya

Bagi pengguna, perkara utama ialah apa yang boleh dilakukan oleh program, dan bukan apa yang tertulis dalam penerangannya. Secara umum, orang lebih suka program membenarkan mereka melihat maklumat berkod XML dalam bentuk yang boleh dibaca. Tetapi dalam teg XML itu sendiri tiada penanda khas yang menunjukkan. bagaimana data harus dipersembahkan pada skrin atau helaian bercetak.

Bagi penerbit yang ingin "menulis sekali dan menerbitkan di mana-mana", perkara yang paling penting ialah "melahirkan" penerbitan dan kemudian "menuangkan" ke dalam pelbagai jenis penerbitan, baik cetak mahupun elektronik. XML membantu mereka dengan cara ini: kandungan ditandakan dengan teg deskriptif yang bebas daripada persekitaran pemaparan. Seterusnya, penerbit boleh merasmikan peraturan pembentangan dalam bentuk kononnya. lembaran gaya, yang secara automatik "menggayakan" kerjanya untuk peranti dan persekitaran yang berbeza. Piawaian untuk bahasa XML sedemikian, dibangunkan untuk tujuan ini, dipanggil Bahasa Lembaran Gaya Boleh Diperluas (XSL).

Versi terkini Penyemak imbas boleh membaca dokumen XML, memilih fail gaya yang sesuai dan menggunakannya untuk mengisih dan memformat maklumat pada skrin. Pembaca mungkin tidak menyedari bahawa dia berurusan dengan XML dan bukannya HTML melainkan dia perasan bahawa tapak dengan XML lebih pantas dan mudah digunakan.

Orang cacat penglihatan juga mendapat manfaat secara bebas daripada prinsip penerbitan dokumen XSL, kerana XSL memberi mereka keupayaan untuk membaca XML dalam Braille atau melalui suara. Kelebihan ini juga terpakai kepada orang lain: sebagai contoh, jurujual mengembara yang ingin melayari Internet dari keselesaan keretanya mungkin mendapati ia agak mudah untuk mendengar halaman dengan bunyi.

Walaupun pada mulanya teras Rangkaian terdiri daripada saintifik dan program pendidikan, Rangkaian hari ini sudah pun berdagang (baik, atau boleh dikatakan, jangkaan komersial), menyimpan bahan api untuk permulaan yang pantas. Semua orang masih ingat resonans baru-baru ini yang disebabkan oleh lonjakan dalam jualan dalam talian, tetapi tidak perlu dikatakan betapa cepat ahli perniagaan berinteraksi antara satu sama lain dalam talian. Aliran produk pengeluar besar jadi mereka memohon automasi pada rangkaian. Tetapi sistem perniagaan hari ini bergantung pada interaksi program-ke-program yang kompleks, dan dalam praktiknya ini berfungsi dengan sangat buruk, kerana kejayaan memerlukan keseragaman proses pemprosesan, yang masih jauh daripada dicapai.

Selama berabad-abad, orang telah berjaya menjalankan perniagaan dengan menukar dokumen standard: pesanan, invois, pengisytiharan, resit, dll. dan lain-lain. Dokumen itu berfungsi untuk perniagaan itu, dan tiada siapa yang memerlukan satu pihak yang terlibat mengetahui kerja dalaman pihak yang lain. Sebarang dokumen ditunjukkan sama seperti yang sepatutnya ditunjukkan kepada penerima maklumat, dan tidak lebih. Nampaknya, pertukaran dokumen adalah yang paling banyak Cara yang betul melakukan perniagaan di Web juga. Tetapi ini sama sekali bukan tugas yang HTML dicipta.

Sebaliknya, XML direka khusus untuk tujuan pertukaran dokumen, dan jelas bahawa asas perdagangan elektronik akan bergantung pada perjanjian yang dinyatakan oleh berjuta-juta dokumen XML yang terapung di Internet.

Oleh itu, Web yang dipertingkatkan XML hendaklah pantas, mesra dan tempat terbaik untuk perniagaan. Malah lebih banyak XML diperlukan oleh juruweb dan pereka web. "Pada letupan penuh"Tentera pengaturcara akan memerlukan pengetahuan tentang bahasa XML baharu. Dan walaupun zaman penggodam yang berpendidikan sendiri [penulis bermaksud maksud perkataan ini yang terbaik] masih bertahan, populasi mereka sudah terancam.

Pereka web esok mesti mahir bukan sahaja dalam penghasilan teks dan grafik, tetapi juga dalam pembinaan berbilang lapisan, sistem saling bergantung berdasarkan DTD, pepohon data, struktur hiperpautan, metadata dan komponen gaya - infrastruktur yang kukuh dan maju bagi Web generasi kedua.

Pada asasnya, penyeragaman membolehkan objek yang berbeza berinteraksi antara satu sama lain - lampu suluh dan bateri, Macromedia Flash dan pelayan permainan berbilang pemain, dan sebagainya. Juga di World Wide Web, di mana sejumlah besar data bergerak setiap saat, adalah sangat penting untuk menyeragamkan cara pertukaran data antara sistem. Berkuasa dan mudah digunakan, XML dengan cepat menjadi standard yang diterima secara meluas.

Dalam tutorial ini, kami akan memperkenalkan anda kepada asas format XML dan juga menunjukkan kepada anda cara anda boleh menggunakan objek XML dan XMLSocket dalam Flash. Menjelang akhir pelajaran, anda akan belajar cara mengatur "komunikasi" Flash dengan halaman ASP untuk mendaftar log masuk pengguna; Kami juga akan membuat sembang ringkas yang berfungsi dalam masa nyata menggunakan pelayan soket.

Apa yang akan dikaji

Dalam pelajaran ini:

  • Format XML
  • Menghantar data XML ke pelayan dan memuat turunnya dari pelayan
  • Mencipta Objek XML Baharu
  • Menggunakan Kaedah, Sifat dan Peristiwa Objek XML
  • Mewujudkan sambungan ke pelayan soket menggunakan Flash

Aplikasi sembang ringkas yang akan kami aturkan dalam tutorial ini akan menggunakan sambungan soket XML.

masa memimpin

Pelajaran ini mengambil masa kira-kira satu setengah jam untuk diselesaikan.

Fail pelajaran

Fail media:

Mulakan fail:

Pelajaran12/Aset/Log MasukDaftar1.fla Pelajaran12/Aset/Sembang1.fla

Projek yang telah siap:

Log MasukDaftar2.fla Sembang2.fla

asas xml

Walaupun nama XML, atau eXtensible Markup Language, kedengaran agak misteri, ia tidak sukar untuk memahami dan menguasai bahasa ini. Pada dasarnya, XML ialah cara memformat dan menstruktur maklumat yang boleh ditafsir dan digunakan oleh aplikasi yang menerima. Malah, kita semua, mungkin tanpa mengetahuinya, mempunyai pengalaman yang luas dalam menstruktur dan menyusun maklumat. Mari kita ambil contoh ini.

Apabila anda ingin menulis surat kepada rakan, anda mesti menyusun pemikiran (maklumat) anda dalam format yang boleh dikenali oleh rakan anda. Jadi, anda mula menulis perkataan di atas sekeping kertas, bermula dari sudut kiri atas dan membahagikan pemikiran anda kepada perenggan, ayat dan perkataan. Sudah tentu, anda tidak boleh menulis dari kiri ke kanan, tetapi entah bagaimana dalam bulatan, atau cuba menyampaikan fikiran anda dengan gambar, tetapi kaedah ini kemungkinan besar hanya akan mengelirukan rakan anda. Dan dengan menulis surat dalam format yang biasa kepada rakan anda, anda boleh yakin bahawa mesej anda akan difahami - iaitu, pemindahan fikiran anda (data, maklumat) kepada penerima surat itu akan berjaya.


XML bertujuan untuk perkara yang sama - ia adalah format untuk menghantar maklumat. Jika, sebagai contoh, anda ingin menghantar data daripada Flash ke pelayan web untuk diproses, anda mesti membentangkan data tersebut terlebih dahulu Format XML. Pelayan kemudiannya boleh mentafsir data ini dan menggunakannya dengan betul. Tanpa ini, pelayan, setelah menerima beberapa keping data, tidak akan tahu apa yang perlu dilakukan dengan bahagian pertama, apa dengan yang kedua, dan apa hubungan bahagian pertama dengan yang kedua. Terima kasih kepada XML, kepingan data yang berbeza ini diberi makna, dan pelayan boleh memahami cara bekerja dengannya.

DALAM Sintaks XML, seperti HTML, menggunakan tag, atribut dan nilai - tetapi di situlah persamaan berakhir. Walaupun HTML menggunakan teg yang dipratentukan (seperti badan, kepala atau html), dalam XML pengguna mencipta sendiri dan bukannya memilih nama yang dipratentukan daripada perpustakaan. Mari kita lihat dokumen XML mudah ini dahulu:

Kelly Makar Mike Grundvig Percuma Makar

Setiap teg XML dipanggil nod ( nod), set data dalam format XML dipanggil dokumen XML. Dokumen contoh kami mempunyai nod akar, MyFriends, dan tiga nod anak. Setiap dokumen XML boleh mengandungi hanya satu nod akar. Nod anak pertama mempunyai nama nod Nama dan nilai nod Kelly Makar. Perkataan Jantina dalam setiap nod kanak-kanak ialah atribut. Atribut adalah pilihan; Setiap nod boleh mempunyai bilangan atribut yang tidak terhad. Biasanya atribut digunakan untuk mengandungi cebisan kecil maklumat yang tidak perlu dipaparkan pada skrin (contohnya, nombor pengenalan pengguna).


Seperti yang anda boleh lihat dalam contoh ini, tag (yang kami cipta dan gambarkan diri kami) memberi makna kepada cebisan maklumat (Kelly Makar, Mike Grundvig dan Free Makar).

Dokumen XML berikut menunjukkan lebih banyak lagi contoh yang kompleks penstrukturan.

Kelly Makar 121 Baker Street Beberapa Bandar Carolina Utara Tripp Carter 777 Jalan Lain Kota Elizabeth Carolina Utara

Contoh ini menunjukkan rupa data buku alamat dalam format XML. Jika kami mempunyai 600 orang dalam buku alamat kami, nod Orang akan diulang 600 kali dengan struktur yang sama.

Bagaimanakah anda harus mencipta nod anda sendiri, struktur anda sendiri? Bagaimanakah objek penerima (halaman ASP, soket, dll.) mengenali pemformatan dokumen? Jawapannya mudah - cara untuk ini mesti dibina ke dalam objek penerima. Contohnya, jika kami mencipta buku alamat dalam Flash dan ingin memasukkan maklumat yang terkandung di dalamnya ke dalam pangkalan data, kami harus menghantar versi XML buku kami ke halaman ASP (atau halaman skrip lain) yang boleh menghuraikan maklumat dan meletakkan data dalam medan yang sesuai Pangkalan data . Anda mesti faham bahawa skrip halaman ASP ini mesti direka bentuk terlebih dahulu untuk mengendalikan data dengan betul. XML lebih sesuai untuk menghantar maklumat daripada menyimpannya; Oleh itu, adalah lebih mudah untuk menyimpan data buku alamat kami dalam rekod pangkalan data daripada dalam bentuk dokumen XML. Apabila diperlukan, maklumat boleh diekstrak daripada pangkalan data dan ditukar kepada format menggunakan skrip khas

Saya fikir anda sudah faham mengapa anda perlu HTML(Ya, HTML). Ia diperlukan untuk membentangkan data dalam penyemak imbas. Iaitu, ada kod HTML dan sepadan dengan ini kod HTML jenis tertentu. Walau bagaimanapun, trend moden memerlukan bukan sahaja paparan data, tetapi juga struktur dalaman yang kompeten.

Itu sahaja untuk mencipta struktur dan terdapat bahasa XML. Contoh mudah:

Epal hijau

Bagi kita orang, segala-galanya segera menjadi jelas. Satu imej serta-merta muncul di kepala saya " epal hijau", bagaimanapun, bagaimana untuk menerangkan kepada komputer bahawa ini adalah epal, bukan oren, seseorang atau galaksi kita? Di sini sekali lagi ia datang untuk menyelamatkan XML, di mana kita boleh membuat sebarang teg, menjelaskan dengan jelas di mana epal itu, di mana oren itu, di mana orang itu berada, dan di mana galaksi kita. Saya harap saya menerangkannya dengan jelas.

Sekarang tentang perkara yang paling penting. Ciri utama XML ialah serba boleh. Itu dia XML memahami mana-mana bahasa moden. Dan sejak XML ialah fail teks, maka anda boleh bekerja dengannya dalam pad nota biasa. Kini khusus untuk berlatih, di mana XML digunakan:

  • Fail tetapan. Tetapan dalam fail XML sangat mudah dibaca dan ditulis. Atas sebab ini, terdapat beratus-ratus fail XML.
  • Jambatan data antara program yang ditulis dalam bahasa yang berbeza. Ciri yang sangat penting hasil daripada kepelbagaian bahasa, dan ia kerap digunakan dalam sistem yang kompleks.
  • Simpanan data. Sebenarnya, ini adalah sejenis analog pangkalan data, tetapi tidak memerlukan DBMS(Sebagai contoh, MySQL). Dan terima kasih kepada bahasa pertanyaan XPath ia menjadi mungkin untuk berkomunikasi dengan mudah dengan ini " pangkalan data".

Dan akhirnya, dari amalan saya, saya boleh memberikan contoh yang paling mudah. Saya mempunyai peta laman dalam format XML di tapak web saya. Terdapat pautan ke semua halaman tapak. Ini adalah perkara yang sangat mudah dan penting untuk pengindeksan tapak yang baik, namun, anda perlu menambahkannya secara manual di sana setiap kali halaman baharu tak selesa. Oleh itu, berkat pengetahuan tentang bekerja dengan XML, saya dengan mudah mengautomasikan perkara ini. Jadi XML ialah bahasa yang berguna, yang mana-mana pengaturcara perlu tahu sekurang-kurangnya dalam istilah umum.

Mari kita pertimbangkan teknologi menggunakan XML untuk memindahkan data ke pelayan.

Kami telah melihat 2 cara untuk memindahkan data ke pelayan: teks biasa dengan pembatas dan JSON. Tetapi mereka mempunyai kelemahan:

  • Kekurangan jenis data. JSON hanya mempunyai rentetan, nombor, nol, boolean. Itu. set data terhad.
  • Sukar untuk mengawal integriti data yang dihantar.
  • Sukar untuk menggambarkan data, mis. objek kompleks sukar untuk dipaparkan, contohnya, dalam borang html kod.
  • Sukar untuk mengubah data, i.e. Sukar untuk mengubah sifat satu objek kepada sifat objek lain.

Sekarang mari kita beralih kepada XML sebagai kaedah pemindahan data. XML(Bahasa Penanda eXtensible) ialah bahasa penanda yang direka bentuk untuk menerangkan, menyimpan dan menghantar data berstruktur. Hari ini XML digunakan di mana-mana sahaja.

Terdapat banyak teknologi berdasarkan XML: DOM (interaksi terprogram dengan data), XLink (penunjuk dan pautan), XPath (penerangan dan pemilihan elemen), XSL, XSLT ( Transformasi XML dokumen).

Menghuraikan pakej XML kelihatan seperti ini:

//XMLHttpRequest object var req= getXmlHttpRequest (); //Memasang pengendali req. onreadystatechange= fungsi () ( jika (req. readyState== 4 ) ( //nyatakan "4 - selesai" var xml= req. responsXML; ))

Di sini anda tidak perlu melakukan serialisasi dan penyahserikatan. Ini dilakukan oleh objek itu sendiri. Sebaik sahaja pelayan menghantar data XML, ia sudah dalam bentuk yang dihuraikan (responseXML - model dokumen DOM). Baca lebih lanjut mengenai teknologi DOM dalam artikel sebelumnya di tapak.

Kadangkala, untuk penyahpepijatan, anda perlu mensiri dan menyahsiri data XML (untuk memindahkan data ke pelayan, ini dilakukan secara automatik, anda tidak perlu melakukannya secara manual). Mari kita sirikan menjadi rentetan:

//untuk IE var str = dom. xml //untuk Firefox var serializer = XMLSerializer baharu (); var str = penyeri bersiri. serializeToString(dom);

Untuk IE kod kerja adalah lebih pendek, kerana ia sudah mempunyai objek terbina dalam untuk bersiri, manakala dalam pelayar lain objek XMLSerializer untuk bersiri hanya muncul.

Apabila bekerja dengan data XML, kami biasanya berurusan dengan model DOM dokumen. Oleh itu, adalah wajar mengingati beberapa aspek DOM (baca tentang ini dalam artikel sebelumnya). Izinkan saya hanya mengingatkan anda tentang cara untuk mengakses elemen DOM model:

//elemen akar var root = xmlDOM. documentElement; //elemen pertama dalam koleksi var buku = akar. childNodes[ 0 ]; //elemen kanak-kanak var tajuk = buku. childNodes[ 0 ]; // nod teks elemen makluman(tajuk. Anak pertama. nodeValue);

Anda juga boleh memilih elemen jenis yang sama daripada DOM model dokumen. Perhatian! Tiada fungsi getElemensById, kerana dalam id XML boleh bermakna apa-apa, bukan hanya pengecam, jadi ia tidak digunakan.

//memilih semua elemen dengan satu tag var books = xmlDOM. getElementsByTagName("buku");

XML juga digunakan secara aktif bukan sahaja untuk perwakilan data, tetapi juga untuk pertukaran data dalam seni bina berorientasikan pelayan. Inilah pendekatan yang kami sampaikan aplikasi yang kompleks bukan sebagai aplikasi pelayan pelanggan klasik, tetapi sebagai satu set perkhidmatan, setiap satunya bertanggungjawab untuk tugasnya sendiri. Dan setiap perkhidmatan mempunyai titik masuk (titik interaksi). Tiada pelanggan yang jelas di sini, kerana... satu perkhidmatan boleh menjadi pelanggan perkhidmatan yang lain. Ternyata begini teknologi yang diedarkan. Terdapat beberapa pendekatan untuk membina teknologi sedemikian - panggilan prosedur jauh, SOAP.

Agar perkhidmatan daripada pelanggan yang berbeza dapat berinteraksi, mereka mesti bercakap dalam bahasa yang sama (tidak kira yang mana sistem operasi semasa perkhidmatan). Dan bahasa sedemikian telah dibangunkan dan dipanggil RPC.

Protokol XML-RPC

RPC(Panggilan Prosedur Jauh) - panggilan prosedur jauh. Ini adalah protokol untuk interaksi antara dua orang titik terpencil. Ia membenarkan titik "a" untuk memanggil fungsi pada titik jauh "b".

Terdapat beberapa pelaksanaan protokol RPC. Mari kita lihat pelaksanaan berasaskan XML.

Pada asasnya, pelanggan dan pelayan hanya menukar beberapa serpihan XML.

XML-RPC menyediakan jenis data berikut:

  • boolean.
  • integer.
  • berganda.
  • tali.
  • masa tarikh.
  • asas64.
  • tatasusunan.
  • struct.
  • null.

Itu. semasa penghantaran jenis tertentu data mesti diisytiharkan apakah jenis data itu. Strukturnya serupa dengan objek JSON.

Menukar Data XML

Untuk mengubah data yang diterima daripada pelayan dalam bentuk XML, XSLT digunakan.

XSLT(Transformasi Bahasa Lembaran Gaya Boleh Diperpanjang) ialah teknologi yang membantu anda menerima XML sebagai input dan membentuk apa sahaja yang anda mahukan sebagai output.

Menukar XSLT kepada javaScript - IE

var dom = new ActiveXObject("MSXML2.DOMDocument"); dom. async = palsu; dom var xsl = ActiveXObject baharu(" [e-mel dilindungi]" ); xsl. async = false; xsl. load ("my.xsl" ); //transformasi itu sendiri var hasil = dom. transformNode(xsl);

Tukar XSLT kepada JavaScript untuk Firefox. Ghrome, Opera

var xslStylesheet; var xsltProcessor var myXMLHTTPRequest = mew XMLHttpRequest(); myXMLHTTPRequest. open("GET" , "example.xsl" , false); myXMLHTTPRequest. hantar(null); //dapatkan xml xslStileshett = myXMLHTTPRequest. responsXML; xsltProcessor myXMLHTTPRequest = XMLHttpRequest(); myXMLHTTPRequest. open("GET" , "example.xml" , false); myXMLHTTPRequest. hantar(null); //transformasi itu sendiri var xmlSource = myXMLHTTPRequest. responsXML; var resultDocument = xsltProcessor. transformToDocument(xmlSource);

Selalunya, ramai pengguna moden sistem komputer Dan produk perisian jenis yang berbeza temui fail dengan sambungan .xml. Ramai orang tidak tahu jenis dokumen ini atau cara membukanya. Sekarang ia akan dipertimbangkan. Pada masa yang sama, kita akan mengetahui apa itu dan untuk apa ia diperlukan.

Apakah itu fail XML

Mari kita mulakan, mungkin, dengan fakta bahawa, dari sudut pandangan moden Teknologi komputer dan program yang digunakan untuk mencipta dokumen jenis ini, ialah fail teks di mana arahan bahasa penanda boleh diperluaskan universal ditulis, yang agak mengingatkan alat penanda HTML yang terkenal.

Biasanya fail XML mengandungi maklumat am mengenai sebarang objek, yang dinyatakan dengan cara deskriptif (lebih lanjut mengenai perkara ini kemudian). Bagi data yang disimpan dalam bekas sedemikian, ini boleh menjadi pangkalan data yang sering digunakan untuk katalog video dan audio Internet, disimpan. tetapan tersuai program dan aplikasi, serta keseluruhan halaman web.

Sebagai contoh, anda boleh mengambil, katakan, album audio beberapa artis. Fail XML termasuk maklumat tentang tahun keluaran, genre, nombor dan nama lagu, populariti, dll. Walau bagaimanapun, apabila melawat sumber dalam World Wide Web pelayar tidak perlu berfikir tentang membuka secara fizikal sedemikian fail maklumat, kerana walaupun semasa memainkan lagu dalam talian, pemain akan memaparkan semua data yang serupa dengan apa yang terkandung dalam fail MP3 standard dalam bentuk tag ID3. Maklumat dimuatkan ke trek yang dimainkan.

Jenis fail XML

Jika anda melihat fail, anda akan segera melihat bahawa di dalamnya sifat-sifat mana-mana objek diterangkan menggunakan tag dan atribut yang ditetapkan secara manual.

Kami tidak bercakap tentang arahan asas bahasa itu sendiri, kerana pengguna biasa tidak memerlukan maklumat sedemikian. Satu-satunya perkara yang boleh diperhatikan ialah sebilangan elemen tertentu yang digunakan untuk menggambarkan objek dalam format ini tidak wujud: sebanyak yang diperlukan, banyak yang diberikan.

Bagaimana untuk membuka format XML standard

Sekarang mari kita lihat cara membuka fail XML. Seperti yang mungkin sudah difahami ramai, ini ialah fail teks, yang bermaksud bahawa cara paling mudah untuk melihat atau mengeditnya ialah menggunakan mana-mana editor, walaupun yang paling primitif. Ya, sekurang-kurangnya "Notepad" yang sama daripada set standard Windows.

Walau bagaimanapun, semuanya tidak begitu mudah di sini. Maksudnya ialah mengikut Klik dua kali fail tidak akan dibuka tanpa menetapkan perkaitan yang sesuai dengan mana-mana program. DALAM senario kes terbaik sistem akan menawarkan senarai aplikasi yang paling sesuai. Anda boleh memilih program pilihan anda, dan pada masa yang sama tandakan kotak di sebelah pilihan untuk sentiasa menggunakan aplikasi yang dipilih untuk semua fail jenis ini.

Anda boleh melakukannya secara berbeza dengan mengklik kanan pada fail dan kemudian memilih arahan "Buka dengan ...", dan kemudian, sekali lagi, pilih aplikasi yang betul sama ada daripada senarai, atau nyatakan lokasi komponen boleh laku utama (paling kerap ini ialah fail EXE).

Cara ketiga untuk membuka fail XML ialah dengan pelancaran awal program dan kemudian menggunakan menu buka fail (dalam kebanyakan kes ini adalah gabungan Ctrl+ O). Dalam kes ini, sama sekali tidak perlu menggunakan Notepad. Sila, fail dibuka tanpa sebarang masalah dalam aplikasi Word yang sama dan yang serupa. Malah Microsoft Excel mampu membuka data dalam format ini.

Walau bagaimanapun, jika terdapat keperluan untuk mengedit format XML, maka adalah lebih baik untuk menggunakan utiliti profesional yang menyokong sintaks bahasa, contohnya, Oxygen XML Editor, XML Marker atau EditiX Lite Version. Sememangnya, ini bukan semua utiliti yang boleh berfungsi dengan bahasa fail pada tahap tertinggi. Hari ini anda boleh menemui banyak program sedemikian.

Sekarang beberapa perkataan tentang mengapa kadangkala ralat fail XML muncul semasa membuka. Selalunya ini disebabkan oleh pelanggaran integriti fail itu sendiri, serta pengenalan atribut atau teg deskriptif yang salah. Selain itu, Excel mempunyai had pada had baris yang boleh dipaparkan, jadi dalam kes ini, data mungkin tidak lengkap apabila dibuka.

Kemungkinan ralat semasa membuka fail XML sebagai lampiran e-mel

Kadangkala ralat mungkin muncul apabila anda cuba membuka fail yang merupakan lampiran emel. Selalunya ini merujuk kepada standard pelanggan mel seperti Outlook Express.

Hakikatnya ialah lampiran pertama kali disimpan sebagai data sementara (sangat kerap dengan tambahan .tmp ditambah pada sambungan utama), dan inilah yang diakses.

Untuk mengelakkan keadaan ini, cukup dengan hanya menyimpan lampiran pada mulanya dalam format asalnya di mana-mana tempat yang mudah pada cakera atau pada media boleh tanggal, kemudian gunakan kaedah standard yang diterangkan di atas.

Daripada jumlah

Seperti yang anda lihat, tidak ada yang sukar untuk memahami struktur dan kaedah membuka fail format ini. Di sini, bagaimanapun, isu mencipta data XML tidak dipertimbangkan secara asas, kerana untuk memahami sepenuhnya proses anda perlu mengetahui sekurang-kurangnya asas bahasa itu sendiri. Jika tidak, saya fikir pengguna tidak akan menghadapi sebarang masalah dengan fail format ini.