В чем разница между расширяемым языком разметки (XML) и XML-схемой (XSD)?
В чем разница между 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.
Ответ 4
XML в сравнении с XSD
XML определяет синтаксис элементов и атрибутов для структурирования данных в хорошо сформированном документе.
XSD (aka XML Schema), как и DTD раньше, обеспечивает силу e X в XML, позволяя пользователю определять словарь и грамматику в действительный XML.
Ответ 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) и инструментами обработки данных.