Использование XML-схемы из макета внешней обработки

10 Comments

  1. vadver

    Очень интересно, каким образом у вас сочетается в заголовке XML «encoding=»utf-8» и в коде

    ТекстДок.Прочитать(ИмяВременногоФайла, «cp866»)?
    

    Это первое.

    На закуску — ну научитесь теги «CODE» применять для оформления кода — вроде не сложно же

    Reply
  2. Milanick

    А какое практическое применение данного функционала?

    Reply
  3. dusha0020

    (2)

    А какое практическое применение данного функционала?

    Например когда схемы сервиса нет, а есть только инструкция по формированию запросов и образцы XML, которые Вы получаете в ответ на запросы. Тогда приводите XML ответы к XSD схемам, сохраняете их в макеты, пишите тонну кода и вот этой бородой в обработке заменяете стандартную WS ссылку.

    Такой корявый подход к работе с клиентами, например, практикует французский маркетплейс CDiscount. Из моего опыта.

    Можно, конечно, закачать схемы в XDTO пакеты конфигурации, но это мне не сильно нравится для работы с побочными и редко используемыми сервисами, да и разработка и отладка сервиса во внешней обработке намного проще.

    Reply
  4. capitan

    Прекрасно.

    Почему текстовый документ, когда схему можно сразу положить в макет как двоичные данные ?

    Reply
  5. Cерый

    В макеты удобно ложить все: дополнительные обработки, файлы правил обмена, файлы запросов:

    ПолучитьМакет(ИмяМакета).Записать(ИмяФайла);

    по аналогии с работой стандартного справочника ВнешниеОбработки

    Reply
  6. capitan

    (5)Ложить может быть удобно и все, если не прибьют граммар-наци.

    Но для каждого вида данных есть свой тип хранения.

    В данном случае — этой выигрыш в скорости

    Reply
  7. PLAstic

    Спасибо, почерпнул пару новых моментов для себя. Как минимум, пригодится в высоконагруженных системах, остановка которых нежелательна.

    Reply
  8. Cерый

    Благодарю Вас за ответ, файловые операции могут быть сомнительны как в плане производительности, так и в плане качества кода,

    в свое время пытался переписать типовой справочник ВнешниеОбработки для их исключения.

    По крайней мере в макетах можно хранить тексты запросов:

    Запрос.Текст=ПолучитьМакет(«Макет»).ПолучитьТекст()

    без обрамлений 124-ми символами(|) типа:

    |ВЫБРАТЬ

    | Превдоним.Реквизит

    и дальнейших игр с ними …

    (6)

    Reply
  9. UberElder

    Довольно интересный способ чтения из XML, возьму на заметку)

    Reply
  10. da_1c

    Можно без временных файлов, например так

    СтрокаXML = ЭтотОбъект.ПолучитьМакет(«SchemaXSD»).ПолучитьТекст();
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(СтрокаXML);
    Построитель = Новый ПостроительDOM;
    Документ = Построитель.Прочитать(ЧтениеXML);
    ПостроительСхемы = Новый ПостроительСхемXML;
    Схема = ПостроительСхемы.СоздатьСхемуXML(Документ.ЭлементДокумента);
    НаборСхем = Новый НаборСхемXML;
    НаборСхем.Добавить(Схема);
    СвояФабрикаXDTO = Новый ФабрикаXDTO(НаборСхем);
    

    Показать

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *