В чем разница между Extensible Markup Language (XML) и XML Schema (XSD)?
В чем разница между Extensible Markup Language (XML) и XML Schema (XSD)?
Ответы:
Фактически XSD - это сам XML. Его цель - проверить структуру другого XML-документа. XSD не является обязательным для любого XML, но он гарантирует, что XML может быть использован для определенных целей. XML содержит данные только в подходящем формате и структуре.
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
но в итоге получил ошибку: Error!!! The 'minOccurs' attribute cannot be present.
Взять пример
<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», который, в свою очередь, является дочерний элемент «корневого» узла, существует иерархия ..]
2) Вы можете определить Тип данных значений узлов. [в приведенном выше примере child_two не может иметь никаких других данных, кроме числа]
3) Вы также можете определить пользовательские data_types, [например, для узла <month>
возможные данные могут быть одним из 12 месяцев .. поэтому вам нужно определить все 12 месяцев в новом типе данных, записывая все названия 12 месяцев в качестве значений перечисления.
4) Вы можете установить ограничение на появление элементов, используя minOccurs и maxOccurs, значения по умолчанию - 1 и 1.
.. и многое другое ...
<root> <A>A</A> <B/> <C/> </root>
если узел <A>
является <A>B</A>
, то сделать <B>
обязательно, если <A>C</A>
затем сделать <C>
обязательным.
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 - схемы) , как DTD ранее, полномочия е X растяжимость в XML , позволяя пользователю определить словарный запас и грамматику из элементов и атрибутов в действительный XML документа.
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<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>
Вот:
хз: элемент : определяет элемент.
xs: последовательность : обозначает, что дочерние элементы появляются только в указанном порядке.
хз: ComplexType : означает, что он содержит другие элементы.
хз: simpleType : Означает, что они не содержат других элементов.
тип: строка, десятичное число, целое число, логическое значение, дата, время,
С помощью дополнительных атрибутов мы можем выполнять несколько операций.
Выполнить любую задачу на xsd проще, чем на xml.
По сути, XSD-файл определяет, как будет выглядеть XML-файл. Это файл схемы который определяет структуру файла XML. Таким образом, он указывает, какие есть возможные поля и какого размера они будут.
XML-файл является экземпляром XSD, поскольку он использует правила, определенные в XSD.
XML имеет гораздо более широкое применение, чем f.ex. HTML. У него нет встроенного или стандартного "приложения". Итак, хотя вам может быть все равно, что веб-страницы также управляются тем, что разрешено, со стороны автора вы, вероятно, захотите точно определить, что XML-документ может содержать, а что не может.
Это похоже на разработку базы данных.
Особенность технологий XML в том, что они текстовые по своей природе. С XSD это означает, что у вас есть среда определения структуры данных, которую можно «подключить» к инструментам обработки текста, таким как PHP. Таким образом, вы можете не только манипулировать самими данными, но также очень легко изменять и документировать структуру и даже автоматически создавать интерфейсы.
С этой точки зрения XSD является «связующим звеном» или «промежуточным программным обеспечением» между данными (XML) и инструментами обработки данных.