Как известно новый модуль проверки XML файлов
XMLChecker использует
XSD схему для валидации содержимого кадастрового XML. Поэтому, если некоторые ошибки в вашем регионе не являются ошибками, можно отредактировать оригинальную схему - это файл
Digitals\XMLCheck\XMLSchema.xsd.
Предположим, что тег
LicenseIssuedDate в вашем регионе является необязательным. Найдите его в файле XMLSchema.xsd (открывается в любом текстовом редакторе, рекомендую
Notepad++) и добавьте атрибут
minOccurs="0". Должно получится так:
Код:
<xsd:element name="LicenseIssuedDate" type="xsd:date" minOccurs="0">
Сохраните схему и перезапустите XMLChecker. Уберите тег
LicenseIssuedDate из вашего тестового XML и ошибка
Элемент "License" неполный. Также ожидается "LicenseIssuedDate"больше не будет появляться.
Второй случай. Предположим, что тег
LicenseIssuedDate является обязательным, но может содержать пустое значение. В данном случае тип
xsd:date нас уже не устраивает, так как не допускает пустых значений. Создадим свой тип, объединяющий пустую строку и формат даты.
Добавьте в начало
XMLSchema.xsd файла после строки
Код:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="0.7">
эти два блока:
Код:
<xsd:simpleType name="empty-string">
<xsd:restriction base="xsd:string">
<xsd:enumeration value=""/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="date-or-nothing">
<xsd:union memberTypes="xsd:date empty-string"/>
</xsd:simpleType>
Они описывают новый тип с именем
date-or-nothing, который допускает пустую строку либо строку в формате XML даты.
Затем снова найдите тег
LicenseIssuedDate и измените его тип. Должно получится так
Код:
<xsd:element name="LicenseIssuedDate" type="date-or-nothing">
После перезапуска XMLChecker ошибка
Пустое значение не допускается в элементе "LicenseIssuedDate" перестанет появляться.