Apa tujuan file XSD?


90

Karena kita dapat melakukan query pada file XML dari C # (.NET), mengapa kita membutuhkan file XSD? Saya tahu itu adalah file metadata dari file XML tertentu. Kita bisa menentukan hubungan di XSD, tapi apa fungsinya?

XML

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

Saya ingin mendapatkan data dari Orderelemen sesuai dengan yang disediakan CustomerID.

Juga : Apa tujuan memberikan hubungan di XSD?


Jawaban:


106

File XSD digunakan untuk memvalidasi bahwa file XML sesuai dengan format tertentu.

Dalam hal ini mereka mirip dengan DTD yang sudah ada sebelumnya.

Perbedaan utama antara XSD dan DTD adalah XSD ditulis dalam XML dan dianggap lebih mudah dibaca dan dipahami.


terima kasih, jadi bisakah saya melakukan query pada file xsd dari c3.net menggunakan Linq untuk mendapatkan data dari file xml? Bagaimana?
Red Swan

@Lalit - Linq tidak ada hubungannya dengan itu.
Oded

Perbedaan penting lainnya adalah Anda tidak dapat melakukan banyak hal dengan mudah dilakukan di XSD dalam DTD.
mortal

Jadi untuk mendapatkan data, saya hanya bisa menggunakan file xml kan? Saya tidak perlu membuat file skema. (Saya tidak ingin memvalidasinya untuk saat ini) Saya hanya ingin mendapatkan data xml yang memiliki berbagai catatan yang bergantung pada peta ID di setiap elemen.
Red Swan

4
@Lalit - jika Anda tidak peduli dengan hubungan seperti itu dan tidak perlu memeriksa apakah mereka sesuai dengan semacam aturan (dikodifikasi dalam XSD), maka jangan gunakan XSD dan cukup kueri XML secara langsung.
Oded

48

Tanpa Skema XML (file XSD), file XML adalah sekumpulan elemen dan atribut yang relatif bebas. File XSD menentukan elemen dan atribut mana yang diizinkan dan dalam urutan apa.

Secara umum XML adalah bahasa logam. File XSD menentukan bahasa tertentu dalam bahasa logam itu. Misalnya, jika file XSD Anda berisi definisi XHTML 1.0, maka file XML Anda harus sesuai dengan XHTML 1.0 daripada beberapa format lainnya.


19

Anda menyebutkan C # dalam pertanyaan Anda sehingga mungkin membantu untuk menganggap XSD memiliki peran yang mirip dengan antarmuka C #.

Ini mendefinisikan seperti apa XML harus 'terlihat' dengan cara yang mirip dengan antarmuka yang mendefinisikan apa yang harus diterapkan oleh kelas.


4
Jika Anda mengambil kelas dan antarmuka yang seharusnya diterapkan, Anda dapat mengetahui apakah kelas tersebut benar. Dengan cara yang sama, jika Anda mengambil file xml dan itu xsd, Anda dapat mengetahui apakah xml sudah benar.
Garry

16

XSD membatasi kosakata dan struktur dokumen XML.

  • Tanpa XSD , dokumen XML hanya perlu mengikuti aturan untuk dibentuk dengan baik seperti yang diberikan dalam Rekomendasi XML W3C .
  • Dengan XSD , dokumen XML harus mematuhi batasan tambahan yang ditempatkan pada nama dan nilai elemen dan atributnya agar dianggap valid terhadap XSD sesuai Rekomendasi Skema XML W3C .

XML adalah tentang kesepakatan , dan XSD menyediakan sarana untuk menyusun dan mengkomunikasikan kesepakatan di luar definisi dasar XML itu sendiri.


12

Juga pertanyaannya adalah: Apa tujuan pemberian relasi di xsd.

Misalkan Anda ingin membuat beberapa XML untuk alat pihak eksternal, atau yang serupa - bagaimana Anda tahu struktur apa yang boleh diikuti untuk digunakan dengan benar untuk alat mereka? Anda menulis ke skema. Demikian juga jika Anda ingin orang lain menggunakan alat Anda, Anda akan menulis skema untuk mereka ikuti. Mungkin juga berguna untuk memvalidasi XML Anda sendiri.


8

Sebelum memahami XSD (XML Schema Definition) izinkan saya menjelaskan;

Apa skema?

sebagai contoh; emailID: peter # gmail

Anda dapat mengidentifikasi emailID di atas tidak valid karena tidak ada @, .com atau .net atau .org.

Kami tahu skema emailnya seperti peter@gmail.com.

Kesimpulan: Skema tidak memvalidasi data, tetapi melakukan validasi struktur.

XSD sebenarnya adalah salah satu implementasi XML Schema. orang lain yang kita miliki

Kami menggunakan XSD untuk memvalidasi data XML.


7

XSD adalah kontrak formal yang menentukan bagaimana dokumen XML dapat dibentuk. Ini sering digunakan untuk memvalidasi dokumen XML, atau untuk menghasilkan kode dari.


5

File XSD adalah Definisi Skema XML dan digunakan untuk menyediakan metode standar untuk memeriksa apakah dokumen XML yang diberikan sesuai dengan yang Anda harapkan.


5

File .xsd disebut skema XML. Melalui skema XML, kita mungkin memerlukan struktur tertentu dalam XML tertentu - elemen mana yang urutannya, berapa kali, dengan atribut yang mana, bagaimana mereka disarangkan, dll. Jika kita memiliki skema untuk input XML kita, kita dapat memverifikasi bahwa itu berisi data yang kita perlukan untuk dimuat, dan tidak ada yang lain, dengan beberapa baris yang memanggil validator skema.


4

File xsd adalah skema dari file xml - ini mendefinisikan elemen mana yang mungkin terjadi dan batasannya (seperti jumlah, urutan, batas, hubungan, ...)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.