ВидФасетаXDTO

Темы платформы · XDTOFacetType

Содержит виды фасетов простого типа модели 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.

Подготовка

  1. Серверный общий модуль УчебныеСхемы в собственной учебной базе: Сервер = Истина, Глобальный = Ложь. Разместите дополнительные функции на уровне модуля, а основной код — в тело Процедура ВыполнитьПример() Экспорт.

  2. Вызовите УчебныеСхемы.ВыполнитьПример() из серверной команды своей учебной обработки. Каждый урок выполняйте отдельно: XSD целиком включена строкой и относится к вымышленной книге.

  3. Схема строится из собственной строки XML через DOM. Здесь нет DTD, чтения файла, загрузки XSD по URL и обращения к внешнему серверу. URI urn:learn:book-schema — имя пространства, не сетевой адрес.

  4. Это пример разбора / работы с моделью 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(Документ.ЭлементДокумента);
    Если Схема = Неопределено Тогда
        ВызватьИсключение "Не построена собственная схема";
    КонецЕсли;
    Возврат Схема;
КонецФункции

Разбор по шагам

  1. XSD задаёт собственный простой тип с ограничением length = 4.

  2. НаборСхемXML.Проверить проверяет схему; ФабрикаXDTO из этого набора создаёт собственную модель.

  3. Фасеты.Получить принимает ВидФасетаXDTO. Затем Фабрика.Создать получает собственное заведомо подходящее лексическое значение.

Как проверить результат

  1. Выведен конкретный вид фасета и создано собственное значение book.

  2. Для границ и длины отдельно проверьте неподходящее значение в учебной базе. whiteSpace нормализует пробелы, а не означает обязательное отклонение строки с пробелами.

Ожидаемый результат

Вид фасета применён к настоящему ограничению собственного типа и созданию значения XDTO.

На что обратить внимание

  1. ВидФасетаXDTO и ТипКомпонентыXS — разные перечисления: модель данных XDTO и модель схемы XS не взаимозаменяемы.

  2. Для decimal значения ограничений относятся к числу; length / pattern в этих примерах относятся к строке.

  3. Код не сохраняет и не отправляет XML. Запуск примера в 1С при подготовке справочника не выполнялся.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.