Какова цель файлов XSD? - PullRequest
       1

Какова цель файлов XSD?

84 голосов
/ 04 августа 2010

Поскольку мы можем запрашивать 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?

Ответы [ 10 ]

100 голосов
/ 04 августа 2010

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

В этом отношении они похожи на DTD s, которые существовали до них.

Основное различие между XSD и DTD заключается в том, что XSD написан на XML и считается более легким для чтения и понимания.

43 голосов
/ 04 августа 2010

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

В общем, XML - это метаязык. Файлы XSD определяют конкретные языки в этом метаязыке. Например, если ваш XSD-файл содержит определение XHTML 1.0, тогда ваш XML-файл должен соответствовать XHTML 1.0, а не другому формату.

16 голосов
/ 04 августа 2010

Вы упомянули C # в своем вопросе, так что это может восприниматься как XSD как выполняющая роль, аналогичную интерфейсу C #.

Он определяет, как должен выглядеть XML, аналогично тому, как интерфейс определяет, что должен реализовывать класс.

14 голосов
/ 13 ноября 2015

XSD ограничивают словарный запас и структуру документов XML.

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

10 голосов
/ 04 августа 2010

Также вопросы: Какова цель дать отношения в XSD.

Предположим, вы хотите сгенерировать какой-нибудь XML для инструмента сторонней организации или аналогичный - откуда вы знаете, какой структуре разрешено следовать, чтобы правильно использовать ее инструмент? Вы пишете в схему. Точно так же, если вы хотите, чтобы другие люди использовали ваш инструмент, вы должны написать схему, которой они будут следовать. Это также может быть полезно для проверки вашего собственного XML.

7 голосов
/ 23 декабря 2015

Прежде чем понять XSD (определение схемы XML), позвольте мне объяснить;

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

например; emailID: peter # gmail

Вы можете определить, что указанный выше электронный идентификатор недействителен, поскольку нет @, .com, .net или .org.

Мы знаем схему электронной почты, которая выглядит как peter@gmail.com.

Вывод: схема не проверяет данные, она проверяет структуру.

XSD на самом деле является одной из реализаций XML-схемы. другие у нас есть

Мы используем XSD для проверки данных XML.

6 голосов
/ 04 августа 2010

XSD - это официальный контракт, который определяет, как может быть сформирован XML-документ. Он часто используется для проверки XML-документа или для генерации кода из.

5 голосов
/ 04 августа 2010

Файл .xsd называется схемой XML.С помощью схемы XML нам может потребоваться определенная структура в данном XML - какие элементы в каком порядке, сколько раз, с какими атрибутами, как они вложены и т. Д. Если у нас есть схема для нашего ввода XML, мы можем проверитьчто он содержит данные, которые нам нужны, и ничего больше, с несколькими строками, вызывающими валидатор схемы.

5 голосов
/ 04 августа 2010

Файл XSD является определением схемы XML и используется для предоставления стандартного метода проверки соответствия данного документа XML ожидаемому.

4 голосов
/ 04 августа 2010

Файл xsd является схемой файла xml - он определяет, какие элементы могут встречаться, и их ограничения (например, количество, порядок, границы, отношения, ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...