В чем разница между XML и XSD?
в чем разница между Extensible Markup Language (XML) и XML Schema (XSD)?
7 ответов:
на самом деле xsd-это сам xml. Его цель заключается в проверке структуры другого xml-документа. Xsd не является обязательным для любого xml, но он гарантирует, что xml может быть использован для некоторых конкретных целей. Xml содержит только данные в подходящем формате и структуре.
берите пример<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) Вы не можете проверить узел/атрибут, используя значение другого узла/атрибута.
2) это ограничение : элемент, определенный в XSD-файле, должен быть определен только с одним типом данных. [в приведенном выше примере, для<child_two>
появляется в другом<parent>
узел, тип данных не может быть определен иначе, чем int.
3) Вы не можете игнорировать проверку элементов и атрибутов, т. е. если элемент/атрибут появляется в XML, он должен быть четко определен в соответствующем XSD. Хотя использование<xsd:any>
позволяет, но у него есть свои правила. Соблюдение которого приводит к ошибке проверки. Я пытался применить подобный подход и, конечно же, не добился успеха,вот вопрос и ответ
что возможно с помощью XSD:
1) Вы можете проверить правильную иерархию узлов XML. [xsd определяет, какой дочерний элемент должен находиться под каким родителем и т. д., соблюдение которого будет считаться ошибкой, в приведенном выше примере child_two не может быть непосредственным дочерним элементом root, но это дочерний элемент тега "parent", который, в свою очередь, является дочерним элементом узла "root", есть иерархия..]
2) Вы можете определить тип данных значений узлов. [в приведенном выше примере child_two не может иметь никаких других данных, кроме числа]
3) Вы можно также определить пользовательские типы данных, [например, для узла<month>
возможные данные могут быть одним из 12 месяцев.. поэтому вам нужно определить все 12 месяцев в новом типе данных, записав все имена 12 месяцев в качестве значений перечисления .. проверка показывает ошибку, если входной XML содержит любое значение, отличное от этих 12 значений .. ]
4) Вы можете поставить ограничение на появление элементов, используя minOccurs и maxOccurs, значения по умолчанию 1 и 1... и многое другое ...
XSD:
XSD (определение схемы XML) указывает, как формально описать элементы в документе расширяемого языка разметки (XML).
Xml:
XML был разработан для опишите данные. он не зависит от программного обеспечения, а также аппаратного обеспечения.
Это усиливает следующие вещи.
-Обмен данными.
-Платформо-независимый.
-Повышение доступности данных.различия:
XSD основан и написан на XML.
XSD определяет элементы и структуры, которые могут отображаться в документе, а XML-нет.
XSD гарантирует, что данные правильно интерпретируются, а XML-нет.
документ XSD проверяется как XML, но обратное может быть не всегда верно.
XSD лучше улавливает ошибки, чем XML.
XSD определяет элемент, которые могут быть использованы в документах, относящихся к фактическим данным, с которыми он должен быть закодирован.
например:
Дата, выраженная как 1/12/2010, может означать либо 12 января, либо 1 декабря. объявление типа данных даты в документе XSD гарантирует, что он соответствует формату, продиктованному XSD.
XML против XSD
XML определяет синтаксис на элементы и атрибуты для структурирования данных в ну-образовалось документ.
XSD (aka XML Schema), как и DTD раньше, приводит в действие eXнатяжение в XML позволяя пользователю определить словарь и грамматика на элементы и атрибуты на действительный XML документ.
в основном XSD-файл определяет, как будет выглядеть XML-файл. Это же - схемы, который определяет структуру XML-файла. Таким образом, он определяет, какие возможные поля и какой размер они будут.
XML-файл экземпляр XSD, поскольку он использует правила, определенные в XSD.
ПРОСТОЙ ПРИМЕР 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.
XML имеет гораздо более широкое применение, чем f.ex. ФОРМАТ HTML. Он не имеет встроенного или стандартного "приложения". Таким образом, хотя вам может быть все равно, что веб-страницы также управляются тем, что разрешено, со стороны автора вы, вероятно, захотите точно определить, что может содержать и не содержать XML-документ.
Это как проектирование базы данных.
дело в том, что XML-технологии являются текстовыми по своей природе. С XSD это означает, что у вас есть структура данных структура определения, которая может быть" подключена " к инструментам обработки текста, таким как PHP. Таким образом, вы можете не только манипулировать самими данными, но и очень легко изменять и документировать структуру, и даже автоматически создавать интерфейсы.
Если смотреть таким образом, XSD является "клеем" или "промежуточным программным обеспечением" между данными (XML) и инструментами обработки данных.