В чем разница между XML и XSD?

В чем разница между расширяемым языком разметки (XML) и XML-схемой (XSD)?

Ответ 1

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

Ответ 2


Рассмотрим пример

<root>
  <parent>
     <child_one>Y</child_one>
     <child_two>12</child_two>
  </parent>
</root>

и создайте xsd для этого:

<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>


Что нельзя сделать с XSD: хотел бы написать его сначала, так как список очень маленький
1) Вы не можете проверить атрибут node/, используя значение другого атрибута node/. 2) Это ограничение: элемент, определенный в файле XSD, должен быть определен только с одним типом данных. [в приведенном выше примере, для <child_two>, появляющегося в другом <parent> node, тип данных не может быть определен иначе, чем int.
3) Вы не можете игнорировать проверку элементов и атрибутов, т.е. Если элемент/атрибут появляется в XML, он должен быть четко определен в соответствующем XSD. Хотя использование <xsd:any> позволяет это, но оно имеет свои собственные правила. Пребывание, которое приводит к ошибке проверки. Я пробовал аналогичный подход и, конечно, не был успешным, вот Q & A


что возможно с XSD:
1) Вы можете проверить правильную иерархию узлов XML. [xsd определяет, какой дочерний элемент должен быть под тем родителем и т.д., который будет считаться ошибкой, в приведенном выше примере child_two не может быть непосредственным дочерним элементом корня, но это дочерний элемент родительского тега, который в свою очередь child из "root" node, есть иерархия..]
2) Вы можете определить тип данных значений узлов. [в приведенном выше примере child_two не может иметь никаких других данных, кроме числа]
3) Вы также можете определить пользовательские типы данных, [пример, для node <month>, возможные данные могут быть одним из 12 месяцев.. поэтому вам нужно определить все 12 месяцев в новом типе данных, пишущем все 12 месячные имена в качестве значений перечисления. валидация показывает ошибку, если входной XML содержит любое другое значение, чем эти 12 значений.]
4) Вы можете поместить ограничение на появление элементов, используя minOccurs и maxOccurs, значения по умолчанию - 1 и 1.

.. и многое другое...

Ответ 3

XSD:
XSD (XML Schema Definition) определяет, как формально описывать элементы в документе Extensible Markup Language (XML).
Xml:
XML был разработан для описания данных. Он не зависит от программного обеспечения, а также от оборудования.
Это улучшает следующие вещи.
- Обмен данными.
-Программа независимая.
-Увеличение доступности данных.

Различия:

  • XSD основан и написан на XML.

  • XSD определяет элементы и структуры, которые могут отображаться в документе, а XML - нет.

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

  • Документ XSD проверяется как XML, но противоположное может быть не всегда истинным.

  • XSD лучше поймать ошибки, чем XML.

XSD определяет элементы, которые могут использоваться в документах, относящиеся к фактическим данным, с которыми он должен быть закодирован.
, например:
Дата, которая выражается как 1/12/2010, может означать 12 января или 1 декабря. Объявление типа данных даты в документе XSD гарантирует, что он следует формату, продиктованному XSD.

Ответ 5

В основном XSD файл определяет, как будет выглядеть XML файл. Это файл Schema, который определяет структуру XML файла. Таким образом, он определяет, каковы возможные поля и какой размер они будут.

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

Ответ 6

ПРОСТОЙ ПРИМЕР XML:

<school>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</school>

XSD ВЫШЕГО XML:

<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>

Здесь:

сложный тип: означает, что он содержит другие элементы. простой тип: означает, что они не содержат других элементов.

Тип: строка, десятичная дробь, целое число, логическое значение, Дата, время,

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

Ответ 7

XML имеет гораздо более широкое применение, чем f.ex. HTML. Он не имеет встроенного или по умолчанию "приложения". Таким образом, хотя вам может и не нравиться, что веб-страницы также регулируются тем, что разрешено, со стороны автора, вы, вероятно, захотите точно определить, какой документ XML может содержать и не содержать.

Это похоже на создание базы данных.

Дело в XML-технологиях заключается в том, что они носят текстовый характер. С XSD это означает, что у вас есть структура определения структуры данных, которую можно "подключить" к инструментам обработки текста, таким как PHP. Таким образом, вы можете не только манипулировать самими данными, но и очень легко изменять и документировать структуру и даже автоматически генерировать интерфейсы.

Подобным образом XSD является "клеем" или "промежуточным программным обеспечением" между данными (XML) и инструментами обработки данных.