|
Программное получение схемы XML | ☑ | ||
---|---|---|---|---|
0
Valadis
08.05.15
✎
14:20
|
Здравствуйте!
Выгружаю таблицу значений в ОбъектXDTO через СериализаторXDTO и далее в XML. Если ли возможность получить из объектаXDTO его схему для выгрузки вместе с файлом с данными. Таблица значений может иметь произвольную структуру. |
|||
1
DrShad
08.05.15
✎
14:36
|
через фабрику и вытаскивай че хочешь хоть схему, хоть пространство имен, хоть сам XML
|
|||
2
Valadis
08.05.15
✎
14:39
|
ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(ТЗ);
ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, ОбъектXDTO,,); Текст = ЗаписьXML.Закрыть(); |
|||
3
Valadis
08.05.15
✎
14:40
|
(2) ка из объекта XDTO вытащить схему ?
|
|||
4
DrShad
08.05.15
✎
14:42
|
СериализаторXDTO (XDTOSerializer)
Фабрика (Factory) Использование: Только чтение. Описание: Тип: ФабрикаXDTO. Фабрика типов XDTO. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
5
DrShad
08.05.15
✎
14:42
|
ФабрикаXDTO (XDTOFactory)
ЭкспортСхемыXML (ExportXMLSchema) Синтаксис: ЭкспортСхемыXML(<URIПространствИмен>) Параметры: <URIПространствИмен> (обязательный) Тип: Строка; Массив. Массив строк или строка, соответствующая URI пространства имен экспортируемых пакетов. Возвращаемое значение: Тип: НаборСхемXML. Описание: Выполняет экспорт пакетов XDTO, имеющих указанные URI пространства имен в набор схем XML. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
6
DrShad
08.05.15
✎
14:42
|
что не понятно?
|
|||
7
Valadis
08.05.15
✎
14:44
|
(6) ЭкспортСхемыXML - не работает, возвращает НЕОПРЕДЕЛЕНО
|
|||
8
DrShad
08.05.15
✎
14:45
|
а какое пространство имен вы там указали?
|
|||
9
DrShad
08.05.15
✎
14:47
|
можно вопрос? а нафейхоа вам сдалась эта схема?
|
|||
10
Valadis
08.05.15
✎
14:49
|
(8) задавал произвольное, хотя может какое-то конкретное нужно
|
|||
11
DrShad
08.05.15
✎
14:50
|
(10) естественно что конкретное *рукалицо*
|
|||
12
Valadis
08.05.15
✎
14:54
|
http://www.w3.org/2001/ - с таким тоже не работает
|
|||
13
Valadis
08.05.15
✎
14:54
|
с любыми другими тоже
|
|||
14
DrShad
08.05.15
✎
15:01
|
ок, а почему вы решили что это пространство имен?
|
|||
15
DrShad
08.05.15
✎
15:03
|
ПакетXDTO (XDTOPackage)
URIПространстваИмен (NamespaceURI) Использование: Только чтение. Описание: Тип: Строка. URI пространства имен пакета типов. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
16
Serginio1
08.05.15
✎
15:03
|
Процедура ЗпаисатьПакетыПоФабрике(Фабрика,ИмяФайла) Экспорт
Для Каждого Пакет из Фабрика.Пакеты Цикл Если Пакет.URIПространстваИмен = "http://www.w3.org/2001/XMLSchema" Тогда Продолжить; КонецЕсли; ИмяПакета=Пакет.URIПространстваИмен; ИмяПакета=СтрЗаменить(ИмяПакета,"http://",""); ИмяПакета=СтрЗаменить(ИмяПакета,"/","_"); НаборСхем = Фабрика.ЭкспортСхемыXML(Пакет.URIПространстваИмен); Для Счетчик = 0 по НаборСхем.Количество() - 1 Цикл Схема = НаборСхем.Получить(Счетчик); Схема.ОбновитьЭлементDOM(); ЗаписьDOM = Новый ЗаписьDOM; ЗаписьXMLСтрока = Новый ЗаписьXML; ЗаписьXMLСтрока.УстановитьСтроку(); ЗаписьXMLФайл = Новый ЗаписьXML; ЗаписьDOM.Записать(Схема.ДокументDOM, ЗаписьXMLСтрока); ЗаписьXMLФайл.ОткрытьФайл(ИмяФайла + ИмяПакета+"[" + Формат(Счетчик,"ЧЦ=10;ЧГ=0;ЧН=") + "].xsd"); ЗаписьXMLФайл.ЗаписатьБезОбработки(ЗаписьXMLСтрока.Закрыть()); ЗаписьXMLФайл.Закрыть() КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
17
DrShad
08.05.15
✎
15:03
|
там в фабрике вообще есть пакеты? если нет, то и схем нет
|
|||
18
Valadis
08.05.15
✎
15:05
|
когда записываю в XML указываю некоторое произвольное пространство имен, затем его же указываю при экспорте
В итоге получаю пустой массив схем. Пространства имен указывал как произвольные, так и определенные в конфигурации, а также http://www.w3.org/2001/XMLSchema |
|||
19
Serginio1
08.05.15
✎
15:06
|
(17) Таблица Значений
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/core}. Имя типа XDTO: ValueTable. |
|||
20
DrShad
08.05.15
✎
15:08
|
(19) это надо не мне писать, а пост (17) был для ТС для наведения на нужную мысль, мог бы конечно как вы дать готовый текст, но так поступаю очень редко - ибо не запоминается, когда без мучений
|
|||
21
Serginio1
08.05.15
✎
15:09
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |