tgoop.com/digital_construction_Svrd_region/1120
Last Update:
Алгоритм как читать описание XML-схем
Рассмотрим уже ставшую стандартной ситуацией, когда на сайте профильного ФОИВа размещается та или иная xml-схема.
В этой связи, пока еще редкий пользователь, из числа не обладающим специальными познаниями в части знания правил формирования XML с использованием спецификации W3C, определяющего структуру, содержимое и семантику XML-документов, уделяет внимание описанию XML-схемы, которое сопровождает саму схему.
Но есть и те кто уделяет внимание прочтению соответствующего описания. И молодцы.
Однако, читать нужно не только то, что написано знакомыми буквами из родного алфавита в описании к XML-схеме, но и все таки понимать какие из представленной XML-схемы элементы и атрибуты являются обязательными и необязательным (опциональным).
В этой связи, небольшая рекомендация, чтобы не запутаться (как наши коллеги) при чтении описания XML-схем, обращать внимание на описание соответсвующих условий обязательности/необязательности для тех или иных элементов и атрибутов, а также на правила (паттерны), которые определяют ограничения на значения элементов и атрибутов.
Как правило, основные элементы XML-схем (XSD) включают:
1. Элементы (<xs:element>) - определяют структуру элементов в XML-документе.
2. Типы данных (<xs:simpleType>, <xs:complexType>) - определяют типы данных, которые могут использоваться в элементах и атрибутах.
3. Атрибуты (<xs:attribute>) - определяют атрибуты, которые могут быть использованы в элементах.
4. Ограничения и правила (<xs:restriction>, <xs:pattern>, <xs:enumeration> и т.д.) - определяют ограничения на значения элементов и атрибутов.
В XML-схемах (XSD) обязательные элементы и атрибуты обозначаются с помощью следующих атрибутов:
1. Обязательные элементы.
Для элементов используется атрибут minOccurs:
- minOccurs="1" - элемент обязателен (должен встречаться хотя бы один раз).
- minOccurs="0" - элемент необязателен.
Если minOccurs не указан, по умолчанию он равен 1 (элемент обязателен).
2. Обязательные атрибуты.
Для атрибутов используется атрибут use:
- use="required" - атрибут обязателен;
- use="optional" (по умолчанию) - атрибут необязателен.
Вывод:
- элемент обязателен, если minOccurs="1" (или не указан).
- атрибут обязателен, если use="required".
Если элемент/атрибут не помечен как обязательный, он считается необязательным.
Вот собственно и весь алгоритм, которым стоит проникнутся перед прочтением описания любой XML-схемы.
По поводу наших коллег, они молодцы конечно, что в своих наблюдениях уделяют внимание наименованию элементов и атрибутов в той или иной схемы, и ведут просветительскую работу по этому поводу, но чтобы лишний раз не напугать себя и окружающих, все таки необходимо еще и обращать внимание не только на русскоязычное наименование элементов и атрибутов, но и на условия их обязательности/необязательного, т.е. на наличие в minOccurs="0" или "1" и наличие в use="required" или "optional".
Большинство из указанных наименований элементов и атрибутов в выводах коллег являются опциональными, т.е. необязательными.
Да, будут определенные сложности при заполнении, тут нужно предварительно ознакомиться с составом проверок (паттернов), но в целом за пару часов рабочего времени управитесь. Как обычно сначала сложно, потом набьете руку.
Если вы ранее относились сознательно к описанию здания на проектирование по формам 307/пр и 125/пр (бюджетники), то больших сложностей у вас процесс описания задания не вызовет. Ну максимум несколько раз через непереводимую игру слов с использованием местных идиоматических выражений выразите свое отношение к этому «увлекательному» процессу. А дальше научитесь.
И еще, не забывайте проверять результат на checkxml.gge.ru, не ограничиваясь только встроенной проверкой на ЕЦПЭ. Ибо ошибок на ЕЦПЭ может и не быть, а вот на внешнем сервисе они найдутся.
Протоколы ошибок конечно безликие, т.е. ошибки нужно выводит не в протокол, а в интерфейс - так пользователь быстрее поймет где и в чем ошибся.
Еще есть хорошее презентация «XML для чайников» от наши коллег из СПбГАУ. Видео ищите на просторах зимнего BIM форума.
BY Свердловская область: цифровизуем строительство сообща и невзирая на! 📈
Share with your friend now:
tgoop.com/digital_construction_Svrd_region/1120