Создаю внешнюю обработку. Предполагается отправка и получение HTTP запросов, содержащих XML-текст. Есть файл шаблона (XSD).
Понятно, что можно файл шаблона загнать в макет двоичными данными и создавать Фабрику по создаваемому внешнему файлу. Это все опробовано и вполне работает если сам шаблон - корректен.
Решил попробовать обойтись без временного файла. Почему бы не взять пустой объект "СхемаXML" (создать его по пустому ДокументDOM), программными средствами заполнить и по такой заполненной схеме создать Фабрику.
Помучился - сделал. Сразу скажу, что по объекту "СхемаXML" совсем мало информации, применительно к программному созданию и заполнению. Поэтому - помучился изрядно. Итогом получаю схему. Создаю Фабрику - есть! Фабрика находит в корневых свойствах то, что мне нужно (хоть тип, хоть свойство), а вот дальше (ниже) не видит ни одного содержимого.
Для контроля вывожу схему в виде файла XML. Файл, что говорится, "красивый". Этот файл импортирую в пакетXDTO и уже по этому пакету создаю фабрику - работает! По той же СхемеXML напрямую пытаюсь создать Фабрику - не работает! Причем, ошибок никаких не выдается - все "проглатывается". Но Фабрика, созданная из СхемыXML, видит только содержимое корневого каталога этой схемы. Информация ниже в Схеме не определяется. Кажется, перепробовал все - итог неудачный.
В этой связи вопрос - кто-то пробовал программными средствами создать СхемуXML для дальнейшего создании Фабрики по ней?
(конечно же СхемаXML помещалась в НаборСхемXML перед созданием Фабрики)
Спасибо за ответы!
(2) Итак, решение состоялось - спасибо за идею, без которой я уже не двинулся бы дальше (устал уже!). Я обошелся-таки БЕЗ макета!
И вот как это выглядит.
1. Создаю СхемуXML из пустого ДокументаDOM, который имеет только соответствия пространств имен и значения атрибутов для корневого элемента "xs:shema"
2. Заполняю объект СхемаXML его методами. Это работает.
3. В заполненном СхемаXML выполняю метод "ОбновитьЭлементDOM()".
4. Из значения свойства "СхемаXML.ДокументDOM" беру ДокументDOM и на его основе заново создаю СхемуXML.
После выполнения этого "обряда" на базе полученной таким образом схемы создается работоспособная Фабрика.
Почему не создается Фабрика сразу - я так и не понял, хотя ДокументDOM, описывающий схему XSD, берется из этой же СхемыXML и он "дает жизнь" уже работоспособной схеме. Что-то не так в консерватории)
Еще раз спасибо!
(7) Вы посмотрите статью - создается пустая конфигурация, в нее загружается пакет xdto, он выгружается как модель в макет и макет используется во внешней обработке.
(2) Да, такой вариант работает - спасибо! В этой связи пришла мысль попробовать еще один вариант, чтобы окончательно исчерпать тему. Позже отпишу о результате.