XSD

Формальное описание форматов и типов данных в XML-документах (XML Schema Definition).

 

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

 

Например, описание вашего XML это: есть корневой элемент, он должен быть из такого-то namespace и называться так-то, в него должен быть вложен такой-то элемент, в котором должны быть указаны такие-то атрибуты, у которых могут быть такие-то дети в таком-то количестве.

 

XSD -- это аналогичное описание, но формальное и машиночитаемое.

 

В любом XML-документе может быть указана его схема (XSD).

 

С помощью IntelliJ IDEA очень удобно работать с XML-документами, особенно если для IDEA будет доступна его схема. Тогда проверка валидации XML, подсказки и авто-подстановки от IDEA -- очень помогут.

 

Удобно работать и знать, что не ошибаешься в порядке элементов, их форматах и множестве, содержимом атрибута или тексте элемента, который может быть провалидирован, согласно XSD-описанию, например:

 

<xsd:simpleType name="SSN">

   <xsd:restriction base="xsd:token">

       <xsd:pattern value="[0-9]{3}-[0-9]{2}-[0-9]{4}"/>

   </xsd:restriction>

</xsd:simpleType>

 

Элемент "SSN" имеет шаблон "[0-9]{3}-[0-9]{2}-[0-9]{4}" = только в этом шаблоне можно указать значение  "SSN" и валидатор это подскажет.

 

Если в XML-документе не указана его схема (XSD), но она есть в виде XSD-файла, то IntelliJ IDEA всё равно может помочь в работе с таким XML, если указать связь между namespace и XSD в настройках:

File --> Settings --> Schemas and DTDs, где URI это Namespace и Location это файл, где он расположен.

 

Например, для документа URI http://abc.ru/333 указан файл схемы .xsd

 

 

В этом файле (schema_1.xsd) определены элементы нэймспэйса, их типы, взаимосвязи.
Для элементов определённого типа указан шаблон - ограничение на значения:

 

 

Если создать XML-документ, в котором первым корневым элементом указать "documents"

(IDEA подскажет все варианты заранее)

 

 

и проставится namespace и IDEA также добавит содержимое -- появится набор вложенных элементов:

(в примере один вложенный элемент)

 

 

Если в XSD описано ограничение на значения, то при указании значения в XML-документе сработает валидация на это ограничение, например, [0-9]{9}:

 

Верный вариант

Неверный вариант

 

Текст команды Validate выводится при нажатии на Validate из контекстного меню:

 

 

 

 

 

 

 



© 2020 | Анна Петросян | pashelp@yandex.ru