Содержит виды фасетов простого типа модели XDTO.
Полное описание, параметры и ограничения
ВидФасетаXDTO (XDTOFacetType)
ВидФасетаXDTO (XDTOFacetType)
Доступен, начиная с версии 8.1.
Значения
Длина (Length)
МаксВключающее (MaxInclusive)
МаксДлина (MaxLength)
МаксИсключающее (MaxExclusive)
МинВключающее (MinInclusive)
МинДлина (MinLength)
МинИсключающее (MinExclusive)
Образец (Pattern)
Перечисление (Enumeration)
ПробельныеСимволы (Whitespace)
РазрядовВсего (TotalDigits)
РазрядовДробнойЧасти (FractionDigits)
Описание:
Содержит виды фасетов простого типа модели XDTO.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
См. также:
КоллекцияФасетовXDTO, метод Получить
ФасетXDTO, свойство Вид
Использование в версии:
Доступен, начиная с версии 8.1.
Методическая информация
Практические примеры
Использовать ВидФасетаXDTO.Длина в собственной модели XDTO
Собственный тип BookValue содержит конкретное ограничение XSD. Фабрика XDTO строится из проверенной собственной схемы, а фасет выбирается по типизированному виду, не по случайному индексу.
Где и как запускать
Серверный общий модуль своей учебной базы; фабрика построена только из собственной XSD.
Подготовка
Серверный общий модуль УчебныеСхемы в собственной учебной базе: Сервер = Истина, Глобальный = Ложь. Разместите дополнительные функции на уровне модуля, а основной код — в тело Процедура ВыполнитьПример() Экспорт.
Вызовите УчебныеСхемы.ВыполнитьПример() из серверной команды своей учебной обработки. Каждый урок выполняйте отдельно: XSD целиком включена строкой и относится к вымышленной книге.
Схема строится из собственной строки XML через DOM. Здесь нет DTD, чтения файла, загрузки XSD по URL и обращения к внешнему серверу. URI urn:learn:book-schema — имя пространства, не сетевой адрес.
Это пример разбора / работы с моделью XSD. Он не является проверкой XML документа продажи или созданием метаданных 1С. Браузер справочника BSL не исполняет.
Схема = ПрочитатьУчебнуюСхему("<xs:schema xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:g=""urn:learn:book-schema"" targetNamespace=""urn:learn:book-schema"" elementFormDefault=""qualified""><xs:simpleType name=""BookValue""><xs:restriction base=""xs:string""><xs:length value=""4""/></xs:restriction></xs:simpleType></xs:schema>");
Набор = Новый НаборСхемXML;
Набор.Добавить(Схема);
Если Не Набор.Проверить() Тогда
ВызватьИсключение "Собственная схема ограничения не прошла проверку";
КонецЕсли;
Фабрика = Новый ФабрикаXDTO(Набор);
ТипЗначения = Фабрика.Тип("urn:learn:book-schema", "BookValue");
Ограничение = ТипЗначения.Фасеты.Получить(ВидФасетаXDTO.Длина);
Сообщить("Вид ограничения: " + Строка(Ограничение.Вид));
ДопустимоеЗначение = Фабрика.Создать(ТипЗначения, "book");
Сообщить("Создано собственное значение: " + Строка(ДопустимоеЗначение));Тот же общий модуль: построение собственной схемы из строки
Функция ПрочитатьУчебнуюСхему(ТекстXSD)
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(ТекстXSD);
Попытка
Дерево = Новый ПостроительDOM;
Документ = Дерево.Прочитать(Чтение);
Чтение.Закрыть();
Исключение
Чтение.Закрыть();
ВызватьИсключение;
КонецПопытки;
Построитель = Новый ПостроительСхемXML;
Схема = Построитель.СоздатьСхемуXML(Документ.ЭлементДокумента);
Если Схема = Неопределено Тогда
ВызватьИсключение "Не построена собственная схема";
КонецЕсли;
Возврат Схема;
КонецФункцииРазбор по шагам
XSD задаёт собственный простой тип с ограничением length = 4.
НаборСхемXML.Проверить проверяет схему; ФабрикаXDTO из этого набора создаёт собственную модель.
Фасеты.Получить принимает ВидФасетаXDTO. Затем Фабрика.Создать получает собственное заведомо подходящее лексическое значение.
Как проверить результат
Выведен конкретный вид фасета и создано собственное значение book.
Для границ и длины отдельно проверьте неподходящее значение в учебной базе. whiteSpace нормализует пробелы, а не означает обязательное отклонение строки с пробелами.
Ожидаемый результат
Вид фасета применён к настоящему ограничению собственного типа и созданию значения XDTO.
На что обратить внимание
ВидФасетаXDTO и ТипКомпонентыXS — разные перечисления: модель данных XDTO и модель схемы XS не взаимозаменяемы.
Для decimal значения ограничений относятся к числу; length / pattern в этих примерах относятся к строке.
Код не сохраняет и не отправляет XML. Запуск примера в 1С при подготовке справочника не выполнялся.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.