# Валидация модели данных iTop через XSD-схему

**URL:** <https://community.itop-itsm.ru/t/validacziya-modeli-dannyh-itop-cherez-xsd-shemu/2153>\
**Category:** Кастомизация\
**Created:** [10.Июль.2026 16:44:55 UTC](https://community.itop-itsm.ru/t/validacziya-modeli-dannyh-itop-cherez-xsd-shemu/2153 "2026-07-10T16:44:55Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vladimir](https://community.itop-itsm.ru/user_avatar/community.itop-itsm.ru/vladimir/32/687_2.png) [@vladimir](https://community.itop-itsm.ru/u/vladimir)\
**Post date:** [10.Июль.2026 16:44:56 UTC](https://community.itop-itsm.ru/t/validacziya-modeli-dannyh-itop-cherez-xsd-shemu/2153/1 "2026-07-10T16:44:56Z")

</div>

Всем привет!

Хочу поделиться небольшой находкой, которая заметно упрощает жизнь при написании `datamodel.my-module.xml`: XSD-схема для валидации модели данных iTop, от [rudnerbjoern](https://github.com/rudnerbjoern/iTop-schema) — [iTop DataModel XSD | iTop schema](https://rudnerbjoern.github.io/iTop-schema/).

### Что это

Обычная XSD-схема, которая проверяет структуру вашего datamodel-файла ещё до того, как вы попытаетесь залить его в iTop и получите (а может и нет) ошибку где-то в недрах системы. Подключается элементарно: в шапке XML достаточно добавить ссылку на схему через `xsi:noNamespaceSchemaLocation`, и дальше IDE сама разбирается.

```auto
<?xml version="1.0" encoding="UTF-8"?>
<itop_design version="3.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="https://rudnerbjoern.github.io/iTop-schema/itop_design.xsd">

```

Но можно запускать и руками через утилиту для валидации xml:

```auto
xmllint --noout --schema https://rudnerbjoern.github.io/iTop-schema/itop_design.xsd datamodel.my-module.xml

```

Есть версия под конкретный iTop 3.2 LTS от 2024 года и просто `latest`, которая всегда смотрит на последний релиз.

### Как использую я

Пробовал в IDE PhpStorm, и там это заработало прямо из коробки после указания схемы в заголовке файла. Из практического:

- **Валидация на лету** : опечатался в названии атрибута, перепутал вложенность — IDE подсвечивает сразу, не надо гонять тулкит и разбирать ошибки.

 ![image](https://community.itop-itsm.ru/uploads/default/original/1X/96115efb2f06226017cc78660206724dd2350cd9.png)

- **Автодополнение** : это лично для меня оказалось приятнее валидации. Пишешь `<` внутри `<field>`, и IDE сама предлагает список валидных дочерних элементов и их значений. Экономит время на подглядывание в вики по XML reference.

 ![image](https://community.itop-itsm.ru/uploads/default/original/1X/b6e5e22cae1883727802f0ff2615c9fc4b2e058c.png)  
 ![image](https://community.itop-itsm.ru/uploads/default/original/1X/d492b3ded3604afbb09a2cf4b055d5234ff79b43.png)

Но автор честно предупреждает, что схема пока неполная: где-то она не понимает `xsi:type` для брендинга/порталов, где-то ругается на вполне легальные конструкции типа `constants/constant`. То есть штука не отменяет проверку через тулкит, но как страховка на этапе написания XML работает хорошо.

Если у кого-то есть свои кастомные атрибуты или плагины, схему можно расширить локально через `xs:include`, автор в документации приводит пример.

Проект живёт на энтузиазме одного разработчика, и он открыто зовёт всех желающих помочь: с опытом в iTop datamodel или в самих XSD, с тестированием на реальных `datamodel.xml`, или просто с issues/pull request’ами в репозитории. Так что если кому-то знакомо и есть время, велкам.
