Penulis: Ma Xiaoning
XML (Extensible Markup Language) mungkin terlihat seperti standar w3c - saat ini tidak memiliki dampak praktis, dan meskipun berguna di masa mendatang, hal tersebut akan memakan waktu lama di kemudian hari. Namun nyatanya sudah digunakan. Jadi, jangan menunggu hingga XML ditambahkan ke editor HTML favorit Anda untuk mulai menggunakannya. Dapat mengatasi berbagai masalah internal dan masalah sistem b2b saat ini.
Di sparks.com kami menggunakan xml untuk membakukan representasi data antara sistem yang berbeda, dari objek java hingga tampilan data html.
Secara khusus, kami menemukan bahwa data dapat dibagikan dan dimanipulasi dengan lebih mudah bila distandarisasi dalam struktur XML yang sangat dasar. Dalam proses ini, kami menemukan banyak cara efektif untuk menggunakan xml. Berikut ini menjelaskan aplikasi kami saat ini secara rinci.
Standarisasi Sebelum menggunakan XML, buatlah format data XML yang berbeda dengan informasi yang ingin Anda gunakan.
Hasilkan xml dinamis
Menghasilkan html dari database bukanlah hal baru, tetapi menghasilkan xml adalah hal baru. Di sini kami memperkenalkan langkah-langkah pembuatan spesifik.
Menggunakan xsl sebagai bahasa templat
XSL (Extensible Stylesheet Language) adalah cara yang baik untuk mendefinisikan format tampilan data XML, dan akan lebih efektif jika ditulis sebagai beberapa templat statis.
Hasilkan html
xml ditambah xsl sama dengan html. Ini mungkin kedengarannya tidak benar, tetapi halaman html yang kami lihat pengguna sebenarnya adalah hasil xml dan xsl.
1.
Kemampuan untuk membakukan XML berasal dari fleksibilitasnya. Namun sayangnya, terkadang hal ini sangat fleksibel sehingga Anda hanya memiliki halaman kosong yang bertanya-tanya bagaimana cara mengatasi masalah tersebut.
Dalam proyek XML apa pun, langkah pertama adalah membuat format data standar. Untuk melakukan hal ini, Anda perlu mengambil keputusan berikut:
•
• Apakah akan menggunakan dtd (definisi tipe file)
8226
;
Karena tidak ada format XML standar, pengembang bebas mengembangkan formatnya sendiri. Namun jika format Anda hanya dikenali oleh satu aplikasi, maka Anda hanya dapat menjalankan aplikasi tersebut untuk menggunakan format tersebut. Jelas akan lebih membantu jika ada program lain yang juga bisa membaca format xml Anda. Jika format XML diubah, sistem yang menggunakannya mungkin juga perlu dimodifikasi, jadi Anda harus membuat formatnya selengkap mungkin. Karena sebagian besar sistem mengabaikan tag yang tidak mereka kenali, cara teraman untuk mengubah format XML adalah dengan menambahkan tag, bukan memodifikasinya.
Klik di sini untuk melihat contoh format data xml
Di sparks.com, kami melihat semua data produk yang diperlukan untuk presentasi produk yang berbeda. Meskipun tidak semua halaman menggunakan semua data, kami telah mengembangkan format data XML yang sangat lengkap dan cocok untuk semua data. Misalnya, halaman detail produk kami menampilkan lebih banyak data daripada halaman penelusuran produk kami. Namun, kami tetap menggunakan format data yang sama dalam kedua kasus tersebut karena templat xsl setiap halaman hanya menggunakan kolom yang diperlukan.
Apakah akan menggunakan dtd
Di sparks.com kami menggunakan xml yang terorganisir dengan baik, bukan hanya xml yang benar karena xml yang pertama tidak memerlukan dtd. DTD menambahkan lapisan pemrosesan antara pengguna mengklik dan melihat halaman. Kami menemukan lapisan ini memerlukan terlalu banyak pemrosesan. Tentu saja, tetap menyenangkan menggunakan DTD saat berkomunikasi dengan perusahaan lain dalam format XML. Karena dtd dapat memastikan struktur data sudah benar saat mengirim dan menerima.
Memilih Mesin Parsing Saat ini ada beberapa mesin parsing yang bisa digunakan. Yang mana yang Anda pilih hampir seluruhnya bergantung pada kebutuhan aplikasi Anda. Jika Anda memutuskan untuk menggunakan DTD, maka mesin parsing harus dapat mengaktifkan XML Anda untuk diverifikasi oleh DTD. Anda dapat memasukkan validasi ke dalam proses terpisah, namun hal itu akan memengaruhi kinerja.
Sax dan dom adalah dua model parsing dasar. SAX berbasis event, jadi ketika xml diurai, event dikirim ke mesin. Selanjutnya, acara disinkronkan dengan file keluaran. Mesin pengurai DOM menetapkan struktur pohon hierarki untuk data XML dinamis dan lembar gaya XSL. Dengan mengakses pohon DOM secara acak, data XML dapat disediakan seolah-olah ditentukan oleh stylesheet XSL. Perdebatan mengenai model SAX terutama berfokus pada pengurangan memori yang berlebihan pada struktur DOM dan mempercepat waktu penguraian style sheet XSL.
Namun, kami menemukan bahwa banyak sistem yang menggunakan saksofon tidak menggunakannya secara maksimal. Sistem ini menggunakannya untuk membangun struktur DOM dan mengirimkan peristiwa melalui struktur DOM. Dengan pendekatan ini, DOM harus dibuat dari stylesheet sebelum pemrosesan XML apa pun, sehingga kinerja akan menurun.
2. Hasilkan xml dinamis
Setelah format xml dibuat, kita memerlukan metode untuk memindahkannya secara dinamis dari database.
Pembuatan dokumen xml relatif sederhana karena hanya memerlukan sistem yang mampu menangani string. Kami membangun sistem menggunakan java servlet, server javabean perusahaan, jdbc dan rdbms (sistem manajemen basis data relasional).
& #8226; Servlet menangani permintaan informasi produk dengan memindahkan tugas menghasilkan dokumen xml ke perusahaan javabean (ejb).
• ejb menggunakan jdbc untuk menanyakan detail produk yang diperlukan dari database.
• ejb menghasilkan file xml dan meneruskannya ke servlet.
Servlet memanggil mesin parsing untuk membuat output html dari file xml dan style sheet xsl statis.
(Untuk informasi tambahan mengenai penerapan XSL, lihat Menggunakan XSL sebagai Bahasa Templat.)
Contoh Pembuatan XML Kode sebenarnya untuk membuat string dokumen XML di Java dapat dibagi menjadi beberapa metode dan kelas.
Kode yang memulai proses pembuatan xml ditempatkan dalam metode ejb. Contoh ini akan segera membuat stringbuffer untuk menyimpan string xml yang dihasilkan.
stringbuffer xml = stringbuffer baru();
xml.append(xmlutils.begindocument("/browse_find/browse.xsl", "browse", permintaan));
xml.tambahkan(produk.toxml());
xml.append(xmlutils.enddocument("jelajahi");
keluar.cetak(xml.tostring());
Tiga variabel xml.append() berikut sendiri merupakan panggilan ke metode lain.
Hasilkan header file Metode tambahan pertama memanggil kelas xmlutils untuk menghasilkan header file xml. Kode di servlet java kita adalah sebagai berikut:
public static string begindocument(string stylesheet, string page)
{
stringbuffer xml = stringbuffer baru();
xml.tambahkan("<?xml versi="1.0"?>n")
.append("<?xml-stylesheet href="")
.append(stylesheet).append(""")
.append(" ketik ="teks/xsl"?>n");
xml.append("<").append(halaman).append(">n");
kembali xml.tostring();
}
Kode ini menghasilkan header file xml. Tag <?xml> mendefinisikan file ini sebagai file xml yang mendukung versi 1.0. Baris kode kedua menunjuk ke lokasi style sheet yang benar untuk menampilkan data. Hal terakhir yang disertakan adalah tag tingkat item (<browse> dalam contoh ini). Di akhir file, hanya tag <browse> yang perlu ditutup.
<?xml version="1.0"?> <?xml-stylesheet href="/browse_find/browse.xsl" type="text/xsl"?> <browse>
Setelah mengisi informasi produk dan melengkapi header file, metode kontrol akan Memanggil objek Java untuk menghasilkan xml-nya. Dalam contoh ini, objek produk dipanggil. Objek produk menggunakan dua metode untuk menghasilkan representasi xmlnya. Metode pertama toxml() membuat node produk dengan membuat tag <product> dan </product>. Ia kemudian memanggil internalxml(), yang menyediakan konten yang diperlukan untuk produk xml. internalxml() adalah serangkaian panggilan stringbuffer.append(). Stringbuffer juga diubah menjadi string dan dikembalikan ke metode kontrol.
string publik toxml()
{
stringbuffer xml = stringbuffer baru("<produk>n");
xml.tambahkan(internalxml());
xml.append("</produk>n");
kembali xml.tostring();
}
string publik internalxml()
{
stringbuffer xml = baru
stringbuffer("t")
.append(tipe produk).append("n");
xml.append("t").append(idvalue.trim())
.append("n");
xml.append("t").append(idname.trim())
.append("n");
xml.append("t").append(halaman.trim())
.append("n");
Pang?
xml.append("t").append(jumlah).append("n");
xml.append("t").append(vendor).append("n");
xml.tambahkan("tn");
xml.append("t").append(pubdesc).append("n");
xml.append("t").append(vendesc).append("n";
Pang?
kembali xml.tostring();
}
Terakhir, metode xmlutils.enddocument() dipanggil setelah menutup file. Panggilan ini menutup tag xml (dalam hal ini) dan akhirnya menyelesaikan file xml terstruktur. Seluruh stringbuffer dari metode kontrol juga diubah menjadi string dan dikembalikan ke servlet yang menangani permintaan http asli.
3. Gunakan xsl sebagai bahasa templat
. Untuk mendapatkan keluaran html, kami menggabungkan file xml yang dihasilkan dengan templat xsl yang mengontrol bagaimana data xml direpresentasikan. Templat xsl kami terdiri dari tag xsl dan html yang disusun dengan cermat.
Mulai membuat template Awal template xsl kita mirip dengan kode di bawah ini. Baris kode pertama diperlukan dan mendefinisikan file ini sebagai style sheet xsl. Atribut xmlns:xsl= mengacu pada namespace xml yang digunakan oleh file ini, dan atribut version= mendefinisikan nomor versi namespace. Di akhir file kita menutup tag.
Baris kode kedua yang dimulai dengan <xsl:template> menentukan mode template xsl. Atribut match diperlukan dan di sini menunjuk ke tag xml <basketpage>. Di sistem kami, tag <basketpage> berisi tag <product>, yang memungkinkan template xsl mengakses informasi produk yang tertanam dalam tag <product>. Sekali lagi kita harus menutup tag <xsl:template> di akhir file.
Selanjutnya, mari kita lihat html yang terorganisir dengan baik. Karena akan diproses oleh mesin parsing XML, maka harus mematuhi semua aturan XML yang terorganisir dengan baik. Intinya, ini berarti bahwa semua tag pembuka harus memiliki tag penutup yang sesuai. Misalnya, tag <p> yang biasanya tidak tertutup harus ditutup dengan </p>.
<xsl:stylesheet xmlns:xsl=" http://www.w3.org/1999/xsl/transform "
versi="1.0">
<xsl:templat pertandingan="halaman keranjang">
<html>
<kepala>
<title>tas belanja / sesuaikan jumlah</title>
</kepala>
<tubuh bgcolor="#cccc99" bgproperties="tetap" link="#990000" vlink="#990000">
<br>
?br> </xsl:templat>
</xsl:lembar gaya>
Di dalam badan template, terdapat banyak tag xsl yang digunakan untuk memberikan logika penyajian data. Dua tag yang umum digunakan dijelaskan di bawah.
memilih
Tag <xsl:choose> mirip dengan awal struktur if-then-else dalam bahasa pemrograman tradisional. Di XSL, tag pilih menunjukkan bahwa di bagian tempat kode dimasukkan, penetapan akan memicu tindakan. Tag <xsl:when> dengan atribut yang ditetapkan mengikuti tag pilih. Jika penugasannya benar, konten antara tag pembuka dan penutup <xsl:when> akan digunakan. Jika penugasan salah, konten antara tag pembuka dan penutup <xsl:otherwise> digunakan. Seluruh bagian diakhiri dengan </xsl:choose>.
Dalam contoh ini, tag kapan memeriksa xml untuk tag kuantitas. Jika tag kuantitas berisi atribut error dengan nilai true, tag kuantitas akan menampilkan sel tabel yang tercantum di bawah. Jika nilai atribut tidak benar, xsl akan menampilkan konten di antara tag sebaliknya. Pada contoh di bawah ini, jika atribut error tidak benar, maka tidak akan ada yang ditampilkan.
<xsl:pilih>
<xsl:when test="kuantitas[@error='true']">
<td bgcolor="#ffffff"><img tinggi="1" lebar="1" src="