Apa perbedaan antara Extensible Markup Language (XML) dan XML Schema (XSD)?
Apa perbedaan antara Extensible Markup Language (XML) dan XML Schema (XSD)?
Jawaban:
Sebenarnya XSD adalah XML itu sendiri. Tujuannya adalah untuk memvalidasi struktur dokumen XML lain. XSD tidak wajib untuk XML apa pun, tetapi memastikan bahwa XML dapat digunakan untuk beberapa tujuan tertentu. XML hanya berisi data dalam format dan struktur yang sesuai.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
tetapi akhirnya mendapatkan kesalahan: Error!!! The 'minOccurs' attribute cannot be present.
Ambil contoh
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
dan desain xsd untuk itu:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="child_one" type="xs:string" />
<xs:element name="child_two" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Apa yang tidak mungkin dengan XSD: ingin menulisnya terlebih dahulu karena daftarnya sangat kecil
1) Anda tidak dapat memvalidasi node / atribut menggunakan nilai node / atribut lain.
2) Ini adalah batasan: Elemen yang didefinisikan dalam file XSD harus didefinisikan dengan hanya satu tipe data. [dalam contoh di atas, untuk <child_two>
muncul di <parent>
node lain , tipe data tidak dapat didefinisikan selain int.
3) Anda tidak dapat mengabaikan validasi elemen dan atribut, misalnya, jika elemen / atribut muncul dalam XML, itu harus didefinisikan dengan baik dalam XSD yang sesuai. Meskipun penggunaannya <xsd:any>
memungkinkan, tetapi ia memiliki aturannya sendiri. Mematuhi yang mengarah pada kesalahan validasi. Saya telah mencoba pendekatan serupa, dan tentu saja tidak berhasil, inilah Q&A
apa yang mungkin dengan XSD:
1) Anda dapat menguji hierarki yang tepat dari node XML. [xsd mendefinisikan anak mana yang harus berada di bawah induk mana, dll, yang tinggal yang akan dihitung sebagai kesalahan, dalam contoh di atas, child_two tidak bisa menjadi anak langsung dari root, tetapi anak dari tag "induk" yang pada gilirannya a anak dari node "root", ada hierarki ..]
2) Anda dapat menentukan tipe Data dari nilai-nilai node. [dalam contoh di atas child_two tidak dapat memiliki data lain selain angka]
3) Anda juga dapat menentukan jenis_data khusus, [contoh, untuk node <month>
, data yang mungkin dapat berupa salah satu dari 12 bulan .. jadi Anda perlu menentukan semua 12 bulan dalam tipe data baru menulis semua nama 12 bulan sebagai nilai pencacahan ..
4) Anda dapat membatasi terjadinya elemen, menggunakan minOccurs dan maxOccurs, nilai defaultnya adalah 1 dan 1.
.. dan masih banyak lagi ...
<root> <A>A</A> <B/> <C/> </root>
dan jika Node <A>
adalah <A>B</A>
, maka buat <B>
wajib, jika <A>C</A>
kemudian buat <C>
wajib.
XSD:
XSD (XML Schema Definition) menentukan cara mendeskripsikan elemen secara formal dalam dokumen Extensible Markup Language (XML).
Xml:
XML dirancang untuk mendeskripsikan data . Ini tidak tergantung pada perangkat lunak maupun perangkat keras.
Ini meningkatkan hal-hal berikut.
Berbagi -Data.
-Platform independen.
-Meningkatkan ketersediaan Data.
Perbedaan:
XSD didasarkan dan ditulis pada XML.
XSD mendefinisikan elemen dan struktur yang dapat muncul di dokumen, sedangkan XML tidak.
XSD memastikan bahwa data diinterpretasikan dengan benar, sedangkan XML tidak.
Dokumen XSD divalidasi sebagai XML, tetapi kebalikannya mungkin tidak selalu benar.
XSD lebih baik dalam menangkap kesalahan daripada XML.
XSD mendefinisikan elemen yang dapat digunakan dalam dokumen, berkaitan dengan data aktual yang akan dikodekan.
misalnya:
Tanggal yang dinyatakan sebagai 1/12/2010 bisa berarti 12 Januari atau 1 Desember. Mendeklarasikan tipe data tanggal dalam dokumen XSD, memastikan bahwa itu mengikuti format yang ditentukan oleh XSD.
XML mendefinisikan sintaks dari elemen dan atribut untuk data penataan dalam well-formed dokumen.
XSD (alias XML Schema) , seperti DTD sebelumnya, kekuatan e X tensibility di XML dengan memungkinkan pengguna untuk menentukan kosa kata dan tata bahasa dari elemen dan atribut dalam valid XML dokumen.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Sini:
xs: element : Mendefinisikan sebuah elemen.
xs: sequence : Menandakan elemen anak hanya muncul dalam urutan yang disebutkan.
xs: complexType : Menandakan itu berisi elemen lain.
xs: simpleType : Menunjukkan bahwa mereka tidak mengandung elemen lain.
jenis: string, desimal, integer, boolean, tanggal, waktu,
Dengan bantuan atribut tambahan, kita dapat melakukan banyak operasi.
Melakukan tugas apa pun di xsd lebih sederhana dari xml.
Pada dasarnya file XSD mendefinisikan bagaimana file XML akan terlihat. Ini adalah file Skema yang mendefinisikan struktur file XML. Jadi itu menentukan apa bidang yang mungkin dan berapa ukurannya.
File XML adalah turunan dari XSD karena menggunakan aturan yang ditentukan dalam XSD.
XML memiliki aplikasi yang jauh lebih luas daripada f.ex. HTML. Itu tidak memiliki "aplikasi" intrinsik, atau default. Jadi, meskipun Anda mungkin tidak terlalu peduli bahwa halaman web juga diatur oleh apa yang diizinkan, dari sisi penulis, Anda mungkin ingin secara tepat mendefinisikan apa yang mungkin dan tidak boleh dimuat oleh dokumen XML.
Ini seperti mendesain database.
Hal tentang teknologi XML adalah bahwa mereka bersifat tekstual. Dengan XSD, ini berarti Anda memiliki kerangka kerja definisi struktur data yang dapat "dicolokkan" ke alat pemrosesan teks seperti PHP. Jadi, Anda tidak hanya dapat memanipulasi data itu sendiri, tetapi juga dengan sangat mudah mengubah dan mendokumentasikan strukturnya, dan bahkan menghasilkan front-end secara otomatis.
Dilihat seperti ini, XSD adalah "perekat" atau "middleware" antara data (XML) dan alat pengolah data.