Яке призначення файлів XSD?


90

Оскільки ми можемо запитувати XML-файл із C # (.NET), навіщо нам потрібен XSD-файл? Я знаю, що це файл метаданих конкретного файлу XML. Ми можемо вказати взаємозв'язки в XSD, але яке його функціонування тоді?

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>

Я хочу отримати дані з Orderелементів відповідно до наданого CustomerID.

Також : Яка мета надання взаємозв’язків у XSD?


stackoverflow.com/questions/2333998/… , також може бути посиланням!
AVA

Відповіді:


106

Файли XSD використовуються для перевірки відповідності файлів XML певному формату.

У цьому відношенні вони схожі на DTD , що існували до них.

Основна відмінність між XSD та DTD полягає в тому, що XSD пишеться в XML і вважається легшим для читання та розуміння.


дякую, так що я можу запитати файли xsd із c3.net за допомогою Linq для отримання даних із файлу xml? Як
Red Swan

@Lalit - Linq тут нічого спільного.
Почато

Інша важлива відмінність полягає в тому, що ви не можете робити багато речей, які легко зробити в XSD в DTD.
вмерти

Отже, для отримання даних я можу використовувати лише файл xml, чи не так? Мені не потрібно генерувати файл схеми. (Зараз я не хочу перевіряти це) Я просто хочу отримати дані xml, які містять різні записи, що залежать від ідентифікаційних карт у кожному елементі.
Red Swan

4
@Lalit - якщо ви не дбаєте про відносини як такі і вам не потрібно перевіряти, чи відповідають вони якомусь правилу (кодифікованому в XSD), тоді не використовуйте XSD, а просто запитуйте XML безпосередньо.
Почато

48

Без схеми XML (файл XSD) файл XML є відносно безкоштовним набором елементів та атрибутів. Файл XSD визначає, які елементи та атрибути дозволені та в якому порядку.

Загалом XML є метамовою. Файли XSD визначають конкретні мови в межах цієї мови. Наприклад, якщо ваш XSD-файл містить визначення XHTML 1.0, тоді ваш XML-файл повинен відповідати XHTML 1.0, а не якомусь іншому формату.


19

Ви згадуєте C # у своєму питанні, тому може допомогти розглядати як XSD, що виконує роль, подібну до інтерфейсу C #.

Він визначає, як повинен виглядати XML, подібно до того, як інтерфейс визначає, що клас повинен реалізовувати.


4
Якщо ви берете клас та інтерфейс, який він повинен реалізувати, ви можете сказати, чи клас правильний. Таким же чином, якщо ви берете файл xml і це xsd, ви можете визначити, чи правильний xml.
Гаррі

16

XSD обмежують словниковий запас і структуру XML-документів.

  • Без XSD XML-документ повинен лише дотримуватися правил належної форми, як зазначено в Рекомендації W3C XML .
  • З XSD документ XML повинен дотримуватися додаткових обмежень, накладених на імена та значення його елементів та атрибутів, щоб вважатись дійсним щодо XSD відповідно до рекомендацій схеми W3C XML .

XML - це все про домовленості , а XSD забезпечують засоби для структурування та передачі угоди за рамки базового визначення самого XML.


12

Також запитання: Яка мета надання зв’язків у xsd.

Припустимо, ви хочете згенерувати якийсь XML для інструменту зовнішньої сторони або подібного - як би ви знали, якої структури дозволено дотримуватися, щоб правильно використовувати його інструмент? ви пишете в схему. Подібним чином, якщо ви хочете, щоб інші люди користувались вашим інструментом, ви повинні написати схему для них. Це також може бути корисним для перевірки власного XML.


8

Перш ніж зрозуміти XSD (визначення схеми XML), дозвольте пояснити;

Що таке схема?

наприклад; emailID: peter # gmail

Ви можете визначити, що вказаний вище ідентифікатор електронної пошти не дійсний, оскільки немає @, .com або .net або .org.

Ми знаємо схему електронної пошти, вона виглядає як peter@gmail.com.

Висновок: Схема не перевіряє дані, вона перевіряє структуру.

XSD насправді є одним із варіантів реалізації XML-схеми. інші ми маємо

Ми використовуємо XSD для перевірки даних XML.


7

XSD - це офіційний контракт, який визначає спосіб формування XML-документа. Він часто використовується для перевірки XML-документа або для генерації коду з.


5

Файл XSD - це визначення схеми XML, і він використовується для забезпечення стандартного методу перевірки відповідності даного документа XML тому, що ви очікуєте.


5

Файл .xsd називається XML-схемою. За допомогою схеми XML нам може знадобитися певна структура в даному XML - які елементи в якому порядку, скільки разів, з якими атрибутами, як вони вкладені тощо. Якщо у нас є схема для нашого вводу XML, ми можемо перевірити що він містить дані, які нам потрібні, і ніщо інше, з кількома рядками, що викликають валідатор схеми.


4

Файл xsd є схемою файлу xml - він визначає, які елементи можуть мати місце та їх обмеження (наприклад, кількість, порядок, межі, відносини, ...)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.