BAB II TINJAUAN PUSTAKA 2.1 DATA SEMI TERSTRUKTUR (SEMISTRUCTURED DATA) Keberadaan data semi terstruktur dikarenakan adanya kebutuhan akan format data baru yang kemudian ditempatkan kedalam teknologi basisdata yang telah ada, terdapat 3 (tiga) motivasi yang dijadikan sebagai dasar dikembangkannya data semi terstruktur, pertama, adanya sumberdata yang ditempatkan pada web, yang ingin diperlakukan sebagai basisdata akan tetapi tidak mengikuti aturan skema basisdata yang telah ada seperti relasional basisdata. Ke-dua, adanya keinginan untuk memiliki format data yang lebih fleksibel dengan tidak adanya aturan yang menentukan tipe, panjang pada elemen datanya, dan yang ketiga adalah memungkinkan kemudahan pada proses pencarian data (browsing) tanpa memperhatikan skema dari sumberdata yang dicari, meskipun sumberdata tersebut memiliki skema. Motivasi nyata yang sangat penting terhadap keberadaan data semi terstruktur adalah adanya keinginan untuk membawa format baru ini kedalam teknologi basisdata yang telah ada. Pada data semi terstruktur, informasi yang biasanya diasosiasikan dengan skema ditempatkan di dalam data itu sendiri, hal ini dikenal dengan istilah “self-describing”. Pada beberapa bentuk data semi terstruktur tidak terdapat skema yang terpisah, kalaupun terdapat skema yag terpisah biasanya yang ditempatkan pada skema hanya batasan yang terlepas dari data (Buneman, 1997). Pendekatan yang digunakan dalam merepresentasikan data semi terstruktur menggunakan model yang disebut sebagai ‘labeled tree’, yaitu struktur pohon dengan edge berlabel. Untuk membangun struktur edge-labeled tree seperti pada Gambar 1. menggunakan sintaks sebagai berikut: {A⇒ {B⇒ {}, C⇒ {}}, D⇒{}} D A B Gambar 1. Contoh edge-labeled tree C Untuk memahami struktur edge-labeled tree seperti pada contoh, terlebih dahulu harus dipahami sintaks dasar yang digunakan yaitu: { }, merupakan sintaks untuk representasi empty tree {l ⇒ t}, sintaks yang menyatakan adanya root tree dengan satu edge-labeled l yang terpasang pada subtree t t1 ∪ t2, sintaks yang digunakan untuk melakukan penggabungan antara tree t1 dengan tree t2, penggabungan dilakukan dengan menyatukan root dari kedua tree. Dengan demikian sintaks {A⇒ {B⇒ {}, C⇒ {}}, D⇒{}}, menyatakan bahwa sebuah tree terbentuk dari dua edge-labeled A dan D, pada edge-labeled A terpasang subtree yang terdiri dari edge-labeled B dan edge-labeled C. Karena pada edge-labeled B, C dan D subtree yang dituju merupakan empty tree, maka sintaks dapat disederhanakan menjadi {A⇒ {B, C}, D} (Buneman, 1996). Label ditempatkan pada edge tidak hanya berfungsi sebagai nama edge, tetapi dapat berfungsi sebagai data dengan tipe Integer, String, atau tipe lain yang sudah dikenal. Pada model data semiterstruktur digunakan juga tipe data simbol (Symbol), tipe data ini dipakai jika label pada edge berfungsi sama seperti atribut pada basisdata relasional atau nama class pada object oriented. Formulasi untuk menentukan label sebagai berikut: type label = int | string | … | symbol type tree = set(label x tree) Formula yang pertama dapat dijelaskan bahwa tipe label dapat berupa integer, string atau symbol, sedangkan formula yang ke-dua dapat dijelaskan bahwa sebuah pohon (tree) adalah kumpulan dari label atau pasangan pohon. D A C B “b” 1 “a” Gambar 2. Contoh penggunaan tipe data sebagai Label 5 Penulisan label yang berfungsi sebagai data dengan tipe data string menggunakan tanda kutip, seperti contoh “a”, sedangkan penulisan angka tanpa menggunakan tanda kutip. Untuk label yang berfungsi sebagai atribut, hanya dapat menggunakan tipe data simbol walaupun tetap menggunakan huruf dan angka dalam penamaan label tersebut. Penulisan nama label dengan tipe data simbol dilakukan tanpa tanda kutip dan biasanya menggunakan huruf kapital, contoh label A, B, C dan D, seperti pada Gambar 2. Struktur pohon dapat juga digunakan untuk merepresentasikan basisdata relasional, Tabel 1 dan Gambar 3 adalah contoh basisdata relasional dalam struktur pohon (Suciu, 1996). r1: m n a b b c c b r2: m p q b c c a a c Tabel 1. Contoh Basisdata Relasional r2 r1 tup m tup n m tup m n a tup c b c c n b tup m p q q m p b c c a a c Gambar 3. Struktur pohon data semi terstruktur. Representasi basisdata dalam bentuk pohon di atas yang memiliki sintaks sebagai berikut: Tree ::= {}|{Label ⇒ Tree} | Tree ∪ Tree Yang memberi penjelasan bahwa, setiap pohon tidak memiliki pohon atau disebut sebagai empty tree yang disimbolkan dengan {}, atau setiap pohon merupakan kumpulan dari label yang membentuk pohon yang disimbolkan dengan {Label ⇒ Tree}, atau merupakan gabungan antara pohon dengan pohon lainnya yang disimbolkan dengan Tree 6 ∪ Tree. Yang dimaksud dengan label adalah setiap edge yang mempunyai label seperti edge tup, edge m edge n dan sebagainya, beberapa label ini dapat membentuk pohon seperti terlihat pada edge r1. Sedangkan pohon yang dihasilkan oleh gabungan dari pohon r1 dan r2 akan membentuk pohon yang lebih besar. Gambar 3. juga memperlihatkan adanya perbedaan skema pohon antara r1 dan r2, pada r1 terdapat 3 (tiga) edge-labeled tup dengan 2 (dua) edge-labeled dibawahnya yaitu m dan n, sementara pada r2 hanya ada 2(dua) edge-labeled tup dengan 3 (tiga) edgelabeled m, p dan q. Perbedaan ini menjelaskan karakteristik dari data semi terstruktur yang tidak terpaku pada satu skema saja. 2.2 METADATA Metadata adalah informasi terstruktur sebuah basisdata yang sering disebut sebagai ‘data tentang data’ atau ‘informasi tentang informasi’. Data atau informasi yang ditempatkan pada metadata merupakan data yang dapat mendeskripsikan elemen yang terkandung pada basisdata, baik informasi berupa nama dari elemen, konten, dan aturan yang diberlakukan pada elemen tersebut. Deskripsi basisdata ini dimaksudkan agar dalam penggunaan dan pengelolaan basisdata tidak mengalami kesulitan, informasi yang terkandung pada basisdata dapat diakses dengan mudah dan tidak rusak. Selain deskripsi elemen basisdata, informasi tentang lokasi dimana informasi ditempatkan juga dapat ditempatkan pada metadata, sehingga temu kembali informasi dapat dilakukan dengan mudah. Terdapat 3 (tiga) jenis utama metadata, yaitu; Descriptive metadata, Structural metadata, dan Administrative metadata. Descriptive metadata adalah metadata yang mendeskripsikan sebuah sumberdata untuk kebutuhan identifikasi data, termasuk didalamnya identifikasi terhadap elemen seperti judul buku, abstrak, pengarang dan kata kunci pada sebuah dokumen di web. Structural metadata merupakan metadata yang menjelaskan proses penggabungan beberapa objek, seperti penggabungan beberapa halaman web yang diurutkan ke dalam bentuk bab pembahasan pada sebuah buku elektronik. Administrative metadata adalah metadata yang menyediakan informasi untuk membantu dalam mengelola sebuah sumberdaya, seperti dokumentasi atas pembuatan sebuah file, tipe, teknik dan hak akses yang diberikan untuk sebuah file. 7 Descriptive metadata merupakan metadata yang umum digunakan untuk mendeskripsikan suatu basisdata, fungsi dari metadata ini adalah sebagai resource discovery. Fungsi ini memiliki kesamaan tugas dengan sebuah katalog, yaitu menemukan sumberdata berdasarkan pada kriteria yang diinginkan, mengidentifikasi sumberdata, memberikan informasi sumberdata yang sejenis, memisahkan sumberdata yang tidak sejenis, dan memberikan lokasi penempatan informasi yang diinginkan. Fungsi lain yang dimiliki oleh descriptive metadata adalah meningkatkan kemampuan interoperability, yaitu kemampuan dari multi sistem yang memiliki perbedaan pada hardware, software platforms, struktur data dan antarmuka dalam melakukan pertukaran data (NISO, 2004). Struktur metadata yang juga disebut sebagai skema adalah satu set elemen metadata yang berisi nama elemen beserta definisi dari elemen (semantik), nilai yang ditempatkan pada elemen metadata disebut sebagai konten, dan aturan-aturan yang diberlakukan pada konten. Contoh aturan yang terdapat pada metadata adalah aturan cara untuk merepresentasikan konten, misalnya penggunaan huruf kapital pada konten, bahkan dapat juga ditentukan value dari konten yang diperbolehkan, misal penggunaan value L dan P pada elemen Jenis_Kelamin. Selain aturan dalam menentukan value elemen, terdapat pula aturan pada sintak yang menentukan bagaimana elemen dan kandungan elemen seharusnya ditulis (encode). Metadata dapat ditulis dalam berbagai sintaks, beberapa skema menggunakan SGML (Standard Generalized Mark-up Language) atau XML (Extensible Mark-up Language). Metadata Encoding and transmission Standard (METS) adalah descriptive dan administrative metadata yang dibangun untuk memenuhi kebutuhan struktur data baku untuk mendeskripsikan perpustakaan digital. METS adalah sebuah skema XML untuk membentuk instance dokumen XML yang berisi struktur dari perpustakaan objek digital. Sebagai metadata yang bersifat descriptive dan administrative, METS diharapkan memberi pengelolaan dan penggunaan perpustakaan objek digital berbeda dan meningkat dibandingkan metadata yang digunakan untuk mengelola objek fisik seperti hasil cetakan dan objek fisik lainnya. Contoh penggunaan METS sebagai administrative metadata digunakan untuk memastikan ketersediaan halaman sebuah buku digital yang berada pada file digital yang berbeda. 8 Dublin Core Metadata Element (DCME) adalah satu contoh skema metadata yang dibangun dengan tujuan awal untuk mendefinisikan satu himpunan elemen yang dapat digunakan untuk menjelaskan sumberdaya web yang menyediakan informasi perpustakaan digital. Berhubungan dengan perkembangan sumberdaya elektronik dan ketidakmampuan perpustakaan dalam penyediaan katalog bagi semua sumberdaya tersebut, maka tujuan dari skema ini adalah mendefinisikan beberapa elemen dan aturan sederhana yang dapat diterapkan oleh mereka yang bukan sebagai pembuat katalog. Terdapat 15 elemen pada DCME, yaitu: Title, Creator, Subject, Description, Publisher, Contributor, Date, Type, Format, Identifier, Source, Language, Relation, Coverage, dan Rights (NISO, 2004). 2.3 INTEGRASI Peningkatan apresiasi pengguna (user) terhadap web yang berfungsi sebagai alat utama dalam pertukaran data menyebabkan peningkatan kebutuhan untuk mengintegrasikan data yang berasal dari berbagai sumber yang memiliki kemungkinan perbedaan pada skema dan model data. Keberagaman sumberdata ini dapat terjadi pada sumberdata konvensional maupun sumberdata semi terstruktur. Integrasi basisdata dapat dilakukan dalam 2 (dua) langkah, yaitu; translasi skema (schema translation) dan integrasi skema (schema integration). Pada tahap translasi, komponen skema basisdata akan ditranslasi menjadi intermediate schema kedalam bentuk yang biasa digunakan dalam merepresentasi skema basisdata (canonical), misalnya model E-R (entity relationship), penggunaan representasi yang canonical dimaksudkan agar dapat mengurangi penggunaan translator yang beragam. Tahap translasi skema perlu dilakukan hanya jika komponen basisdata bersifat heterogen atau skema pada basisdata lokal didefinisikan menggunakan model data yang berbeda. Hal lain yang juga dilakukan pada tahap translasi skema ini adalah menentukan spesifikasi model data untuk mendefinisikan skema konseptual global yang akan digunakan pada tahap integrasi data (Özsu et.al, 1999). Tahap selanjutnya adalah tahap integrasi skema, setiap skema antara (intermediate schema) diintegrasikan ke dalam skema konseptual global yang telah didefinisikan sebelumnya, dengan mengidentifikasi komponen dari basisdata yang saling berkaitan antara yang satu dengan yang lain. 9 Hasil dari integrasi yang dilakukan harus memenuhi tiga hal yaitu; kelengkapan, minimal, dan dimengerti. Kelengkapan yang harus dipenuhi pada integrasi adalah jika semua informasi yang berasal dari semua skema dapat diintegrasikan ke dalam skema konseptual global yang telah ditentukan. Kondisi minimal dari hasil integrasi data dapat dilihat dari banyaknya kerangkapan informasi yang terdapat pada skema hasil integrasi, hal ini dapat terjadi karena kegagalan dalam mendeteksi kerangkapan informasi pada intermediate schema. Mudah dimengerti adalah hal terakhir yang harus dicapai dari integrasi, hal ini dapat peroleh dengan terbentuknya skema terbaik dari hasil integrasi. Berbagai bentuk pemecahan integrasi data telah dibuat, yang dapat dimasukkan kedalam 2 (dua) kategori utama, yaitu integrasi data dengan pendekatan struktural dan integrasi data dengan pendekatan semantik. Integrasi data dengan pendekatan struktural menggunakan skema global dari sumberdata yang akan diintegrasikan, sedangkan integrasi data dengan pendekatan semantik menggunakan konseptual model atau ‘ontologies’ setiap basisdata lokal sebagai integratornya. Pada beberapa sistem integrasi data yang menggunakan pendekatan struktural, selain menggunakan skema global, sistem juga menggunakan skema lokal. Kedua skema dibutuhkan karena integrasi data dilakukan dengan memetakan skema global dan skema lokal, untuk menghasilkan view definition. Contoh dari pendekatan struktural adalah Tsimmis, model data yang digunakan dalam integrasi data ini adalah OEM (Object Exchange Model), sementara pada MIX, model data yang digunakan adalah XML. Sedangkan untuk membangun pendekatan semantik, beberapa usaha telah dilakukan untuk membiarkan pengguna melakukan integrasi data pada tingkat konseptual, seperti RDF (Resource Description Framework). Pendekatan untuk masalah integrasi data biasanya mengadopsi pendekatan integrasi skema tradisional untuk basisdata terstruktur yang heterogen, atau pendekatan integrasi data semi terstruktur. Kunci keberhasilan integrasi data terdapat pada hubungan antar skema (interschema relationships), identifikasi hubungan antar skema akan memberikan kemudahan dalam integrasi data. Identifikasi hubungan antar skema pada sistem integrasi data untuk data semi terstruktur dapat dilakukan dengan cara yang berbeda, pada proyek TSIMMIS, identifikasi antar skema dilakukan menggunakan pendekatan dengan membangun mediator hanya untuk memahami sumberdata dimana mediator tersebut 10 digunakan. Pada proyek ini tidak digunakan skema basisdata global (Chawate et. al, 1994). Integrasi data dengan menggunakan pendekatan skema konseptual tidak dapat diterapkan pada data semi terstruktur, hal ini dikarenakan model data semi terstruktur hanya menggunakan labeled-graph untuk menangkap semantik dari data, oleh karenanya agar data semi terstruktur dapat menggunakan skema konseptual untuk integrasi data, digunakan suatu model data yang dapat mengekploitasi informasi skematik (schematic information) dan sekaligus dapat merepresentasikan data semi tertruktur dengan baik. Untuk memenuhi kebutuhan tersebut dapat digunakan XML sebagai model data, dimana DTD (document type definition) untuk menangkap informasi skematik, dan dokumen XML sebagai representasi data semi terstruktur(Gianolli et. al, 2000). Penggunaan model data semantik pada integrasi data yang berbasis pada model data XML memungkinkan dibentuknya skema target, dan memetakan informasi yang terdapat pada beberapa fragmen XML ke dalam model konseptual tujuannya. Mengkombinasikan definisi skema konseptual dan membuat pemetaan (mapping) dalam satu langkah mendukung timbulnya ide untuk menggabungkan user-defined, intradocument dan interdocument menjadi satu mata rantai yang berperan melakukan identifikasi dan peleburan objek selama tahap data integrasi berjalan. Konseptual skema dapat dibentuk berdasarkan pada beberapa input data model yang menawarkan beberapa konsep seperti entity, attribute dan mapping. Proses pembentukan konseptual skema dapat dilakukan dengan mengambil DTD sebagai input, kemudian dipetakan sesuai dengan elemen yang terdapat pada kedua skema. Pembentukan skema konseptual dapat dilakukan secara manual, dimana manusia akan berperan sebagai integrator (human integrator). Kebutuhan informasi yang akan disajikan dan kebenaran skema input serta semantik data merupakan parameter pada pembentukan skema konseptual. Kebenaran integrasi skema sumberdata terhadap skema konseptual global dapat dilihat berdasarkan dari terpetakan semua elemen data sumberdata pada elemen data skema konseptual global, yang diikuti dengan dihasilkan output yang benar. Jika terdapat elemen sumberdata yang tidak terpetakan maka skema konseptual global yang dirancang belum dapat mengintegrasikan data. 11 2.4 EXTENSIBLE MARKUP LANGUAGE (XML) XML merupakan bentuk baku untuk merepresentasikan struktur dokumen teks dan data pada web, yang memberikan kemudahan dalam publikasi dan pertukaran data. Kemudahan tersebut terdapat pada sintak sederhana yang digunakan XML, tidak seperti pada HTML, XML diharapkan dapat memenuhi kebutuhan manusia dalam pencarian informasi dan memenuhi kebutuhan komputer dalam pengolahan data. XML memisahkan secara tegas antara kandungan informasi dan struktur informasi tersebut. Kelebihan dari XML dibanding HTML adalah penggunaan tag yang berfungsi sebagai user-defined yang digunakan untuk mendeskripsikan arti dari data dan tidak mendefinisikan bagaimana data akan terlihat. Dokumen XML dapat divalidasi sesuai dengan spesifikasi yang terdapat pada Document Type Declarations (DTDs) yang mendeskripsikan struktur dari dokumen XML, yang harus ditekankan adalah bahwa XML digunakan sebagai bahasa untuk mendeskripsikan struktur sintak sebuah dokumen (Gianolli et. Al, 2000). XML digunakan untuk ‘markup documents’ bagi tujuan presentasi dan pemrosesan data lebih lanjut. Marked-up documents disebut sebagai XML documents (dokumen XML). Komponen dasar dari dokumen XML adalah elemen, yaitu kata yang dibatasi dengan sepasang tag, seperti <Nrp> dan </Nrp>, kandungan dari elemen dapat berupa teks, elemen lain atau kombinasi dari dan elemen. Selanjutnya, elemen dapat berisi atribut (attributes), dimana atribut ini merupakan pasangan ‘name-value’ yang dispesifikasikan dalam tag elemen, seperti pada contoh penulisan atribut dibawah ini (Gianolli et. al, 2000) : <kodeps id = ‘502’ > Manajemen Informatika</kodeps> Penggunaan XML dikarenakan XML merupakan perluasan bentuk dari HTML yang memungkinkan untuk mendefinisikan tag secara lokal dan mudah dalam pertukaran informasi terstruktur, sedangkan SGML adalah superset dari HTML dan XML yang memungkinkan peningkatan pembesaran dokumen. Kegunaan XML sebagai tools menjadi sangat luas, karena XML dapat memainkan peranan yang semakin rumit pada pertukaran berbagai bentuk data pada web (NISO, 2004). Terdapat 2 (dua) kebutuhan dalam membentuk XML yaitu; well-formed dan validate-formed. Well-formalization merupakan kebutuhan dokumen XML agar dapat 12 mengikuti beberapa sintaks, seperti, adanya satu elemen yang berisi elemen lain, atau elemen dapat berupa elemen yang tersarang (nest) akan tetapi tidak tumpang tindih (overlap), dan sebagainya. Kebutuhan atas validation-formed, dikarenakan XML berisi elemen dan atribut yang telah ditentukan tipe data dan hubungan (relationship) antar elemen. Document Type Definition (DTD) dan skema XML adalah dua bentuk mekanisme validasi utama yang digunakan pada XML. Sebagai sebuah well-formed, dokumen XML memiliki struktur bertingkat, dimana terdapat beberapa bahasa dapat digunakan untuk menempatkan elemen pada dokumen XML. Aspek penting lain dari XML adalah perubahan struktur, ketika sebuah instance dokumen dapat dibuat dari banyak sumber untuk dapat dipakai pada aplikasi dengan struktur yang berbeda, teknologi untuk mentranslasi suatu struktur ke struktur lain memungkinkan untuk dilakukan. Dokumen XML tidak hanya memperlihatkan konten dari data, juga memperlihatkan constraint dan relationship antar data, berikut adalah contoh dari dokumen XML: <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v4.2 U (http://www.xmlspy.com) by Ba-k (ZonaWarez.com) --> <!--Sample XML file generated by XML Spy v4.2 U (http://www.xmlspy.com)--> <!DOCTYPE ProgramStudi SYSTEM "C:\Documents and Settings\Irematara\My Documents\TesisTitin\Prodi.dtd"> <ProgramStudi> <KodeProdi>511</KodeProdi> <NamaProdi>Teknik Informatika</NamaProdi> <JenjangProdi>Strata-1 (S1)</JenjangProdi> <Akreditasi>B</Akreditasi> </ProgramStudi Gambar 4. Contoh dokumen XML Pada Gambar 4. terlihat elemen “ProgramStudi” ditampilkan bersama beberapa sub-elemen yang dapat berupa simple type atau complex type. Sub-elemen yang complex type adalah sub-elemen yang memiliki sub-elemen. Setiap dokumen XML memiliki skema XML, pada Gambar 5. di bawah adalah skema XML dari dokumen XML pada Gambar 4. <?xml version="1.0" encoding="UTF-8"?> <!-- edited with XML Spy v4.2 U (http://www.xmlspy.com) by Ba-k (ZonaWarez.com) --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:element name="ProgramStudi"> <xs:annotation> <xs:documentation>Comment describing your root element</xs:documentation> </xs:annotation> 13 <xs:complexType> <xs:sequence> <xs:element name="KodeProdi"/> <xs:element name="NamaProdi"/> <xs:element name="JenjangProdi"/> <xs:element name="Akreditasi"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Gambar 5. Contoh dokumen XML 2.4.1 VALIDASI XML Pengecekan kebenaran skema dokumen XML yang dirancang dapat dilakukan dengan memenuhi kondisi well-formed dan validate-form, untuk dapat memenuhi 2 (dua) kondisi tersebut maka DTD dari dokumen XML harus sesuai dengan skema dokumen XML yang dirancang. Jika skema dokumen XML yang dirancang tidak sesuai dengan DTD skema dokumen, maka skema tersebut hanya memenuhi kondisi well-formed, dengan kondisi yang seperti ini akan memberi akibat dokumen XML tidak dapat dibentuk. Sebaliknya, jika hanya terdapat DTD saja untuk memenuhi kondisi validateform tanpa adanya pemenuhan kondisi well-formed pembentukan dokumen XML juga tidak dapat dilakukan. Pengecekan kebenaran skema dokumen XML yang bergantung pada skema dan DTD disebabkan karena DTD adalah bahasa pertama yang digunakan untuk mendefinisikan struktur dan konten dari dokumen XML, akan tetapi terdapat beberapa keterbatasan yang kritis jika DTD digunakan untuk dokumen yang tersebar. Beberapa keterbatasan tersebut antara lain : a. File DTD bukan merupakan dokumen XML yang well-formed dan valid, DTD bukan merupakan metadata, akan tetapi merupakan suatu bentuk khusus untuk memperlihatkan urutan dari elemen. Permasalahan dengan kondisi ini adalah dibutuhkannya proses khusus oleh XML parser untuk mengurai konten pada DTD. b. Kesulitan dalam menentukan batasan pada struktur dan konten dari XML instance dengan DTD, pada kenyataannya DTD hanya menentukan urutan dari elemen, subelemen dan atribut yang akan ditampilkan, tetapi tidak dapat mendefinisikan relasionship dan batasan. 14 c. DTD tidak dapat mendefinisikan tipe data, sehingga menyulitkan dalam reusable, extensible dan modular. Definisi suatu DTD tidak dapat dilakukan dengan menggunakan DTD lain, dan aturan pada DTD tidak dapat digunakan kembali dan diperluas menggunakan aturan lain baik yang berada didalam maupun luar dari DTD tersebut. Semua keterbatasan ini mencegah DTD untuk dapat diterapkan secara luas pada sistem yang tersebar, pada sisi lain, skema XML merupakan satu alternatif pada lingkungan perusahaan modern, dimana XML memiliki fitur-fitur (features) sebagai berikut: a. XML skema adalah dokumen XML itu sendiri, dimana parser XML dapat menangani seperti XML instance. b. Tipe data kompleks untuk user-defined dapat dibuat pada skema XML. c. Deskripsi dan relasi dari skema dan komponen dapat diekspresikan, hirarki dapat dijelaskan berdasarkan pada relasi ini, sehingga membuat skema dapat digunakan kembali dan dapat diperluas. d. Pembentukan Namespace yang didukung pada skema XML untuk mengatasi benturan nama, hal ini dapat membantu penyebaran modular dari administrasi keamanan pada model. Dengan alasan di atas, semua spesifikasi XML modern saat ini berdasarkan pada skema, dengan peningkatan penggunaan skema pada XML akan menghasilkan kendali akses yang berbasis skema. Kendali akses pada instance dokumen XML dan DTD dapat diimplementasikan secara terpisah, selama DTD bukan merupakan XML yang wellformed dan valid-formed. Pengecekan kebenaran terhadap skema dokumen XML dapat juga dilakukan berdasarkan dari kemampuan dokumen dalam menampung data, meskipun skema dokumen XML dapat dibentuk dengan benar akan tetapi dokumen yang terbentuk tidak dapat menampung data baik dalam jumlah data maupun representasi data, yang sesuai dengan kebutuhan pengguna, maka skema dokumen perlu dirancang ulang sampai dokumen dapat menampung data sesuai dengan kebutuhan penggunanya. 15