ИсключенияГруппПодстановкиXS.Все

Свойства · All

Все.

Полное описание, параметры и ограничения

ИсключенияГруппПодстановкиXS.Все (XSSubstitutionGroupExclusions.All)

ИсключенияГруппПодстановкиXS (XSSubstitutionGroupExclusions)

Все (All)

Доступен, начиная с версии 8.1.

Описание:
Все.
Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Разобрать ИсключенияГруппПодстановкиXS.Все в собственной XSD

В собственной строке XSD задан конкретный вариант Все. Читается настоящий компонент построенной модели, затем создаётся отдельная глубокая копия и обновляется её DOM-представление.

Где и как запускать

Серверный общий модуль своей учебной базы. Редкий API: разбор конкретной своей XSD и её политики / вариантов модели.

Подготовка

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

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

  3. Схема строится из включённой строки. Никаких HTTP-загрузок, внешних XSD, DTD, файлов и записей 1С здесь нет. Namespace urn:learn:book-schema не является сетевым адресом.

  4. Форма представления локального элемента и элемент верхнего уровня — разные случаи. Ограничения key / unique / keyref относятся к XML, не к справочникам или ссылкам базы 1С.

Схема = ПрочитатьУчебнуюСхему("<xs:schema xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:g=""urn:learn:book-schema"" targetNamespace=""urn:learn:book-schema"" elementFormDefault=""qualified""><xs:element name=""book"" type=""xs:string"" final=""#all""/></xs:schema>");
Компонента = Схема.ОбъявленияЭлементов.Получить("book", "urn:learn:book-schema");
ЗначенияПолитики = Компонента.ИсключенияГруппПодстановки.Значения();
Для Каждого ЗначениеПолитики Из ЗначенияПолитики Цикл
    Сообщить("Признак политики: " + Строка(ЗначениеПолитики));
КонецЦикла;
Сообщить("Найден конкретный признак: " + Строка(ЗначенияПолитики.Найти(ИсключенияГруппПодстановкиXS.Все) <> Неопределено));
Копия = Компонента.КлонироватьКомпоненту(Истина);
Копия.ОбновитьЭлементDOM();
Сообщить("XML-тег своей копии: " + Копия.ЭлементDOM.ИмяЭлемента);
Тот же серверный модуль: построение своей модели XSD из собственной строки
Функция ПрочитатьУчебнуюСхему(ТекстXSD)
    Чтение = Новый ЧтениеXML;
    Чтение.УстановитьСтроку(ТекстXSD);
    Попытка
        Дерево = Новый ПостроительDOM;
        Документ = Дерево.Прочитать(Чтение);
        Чтение.Закрыть();
    Исключение
        Чтение.Закрыть();
        ВызватьИсключение;
    КонецПопытки;
    Построитель = Новый ПостроительСхемXML;
    Схема = Построитель.СоздатьСхемуXML(Документ.ЭлементДокумента);
    Если Схема = Неопределено Тогда
        ВызватьИсключение "Не построена собственная схема";
    КонецЕсли;
    Возврат Схема;
КонецФункции

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

  1. Собственная XSD заранее задаёт вариант группы, атрибута, маски, наследования, простого типа или политики.

  2. Для объединений политики вызывается Значения, возвращающий массив значений перечисления. Такой объект нельзя сравнивать с одиночной константой как с обычным scalar-свойством.

  3. Чтение конкретного свойства не меняет модель; отдельная глубокая копия обновляет свой DOM, исходная компонента не заменяется.

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

  1. Выведены фактический вариант / элементы политики, сравнение с конкретной константой и XML-тег отдельной копии.

  2. Для Все / #all нормализация модели может вернуть составные признаки вместо буквального элемента Все. Смотрите весь массив; пример не обещает обязательное Истина для каждого представления объединения.

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

Конкретный вариант перечисления сопоставлен с настоящим компонентом собственной модели XSD.

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

  1. ЗапрещенныеПодстановки / ИсключенияГруппПодстановки могут вычисляться моделью по контексту, не всегда совпадая один к одному с написанным XML-атрибутом.

  2. Не добавляйте элементы в объединение несуществующими методами Содержит / Добавить: здесь значения реально получены через Значения().

  3. Клон отдельного компонента не является автоматически законченной новой схемой. Проверка экземпляра XML и запись в базу не выполняются.

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

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

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

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

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