|
Сериализация по собственному пакету XDTO | ☑ | ||
---|---|---|---|---|
0
Zixxx
12.11.14
✎
11:39
|
Можно ли как-то сериализовать объекты по собственному пакету XDTO, например при записи объекта принубильно указать Имя и URI.
Пробовал создавать фабрику из собственного пакета, далее на основании фабрики создавать сериализатор либо просто делать через собственную фабрику... Сериализатор.ЗаписатьXML(ЗаписьXML, Номенклатура, "CatalogObject.Алт_Номенклатура", "http://www.sc/integrator/current-config") Но всегда ругается что Номенклатура объект не соответствует типу. Видимо потому что тип у объекта номенклатуры всегда определяется из URI http://v8.1c.ru/8.1/data/enterprise/current-config Через ЗаполнитьЗначенияСвойств() делать не хочется, это уже будет не сериализация. Есть у кого какие мысли или решения? |
|||
1
Zixxx
12.11.14
✎
20:28
|
ап
|
|||
2
tridog
12.11.14
✎
20:37
|
(0) Это не так работает.
а = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("URI", "Type")); и потом можешь работать с объектом а - заполнять значения свойств и т.д. Автоматический марщалинг (СериализаторXTO.Записать...) работает только для типов 1Совских схем. |
|||
3
Zixxx
12.11.14
✎
20:43
|
(2) Это понятно, но не то что требуется, нужно не заполнение а сериализация.
Если после сериализации по данным можно составить схему и импортировать ее в пакет, почему в дальнейшем нельзя указать через какой именно тип я хочу делать сериализацию |
|||
4
tridog
12.11.14
✎
20:47
|
(3) Просто схемы недостаточно для автоматического маршалинга. Вдруг у тебя в твоей схеме даже свойства Parent нету, куда в таком случае сериализатор должен владельца записывать?
|
|||
5
Zixxx
12.11.14
✎
20:50
|
(4) Пусть будет тоже самое есть обратиться к несуществующему ключу структуры
|
|||
6
tridog
12.11.14
✎
21:41
|
(5) Т.е. ты хочешь сериализацию в свою схему, но только при условии, что своя схема полностью идентична схеме из поставки платформы?
|
|||
7
Zixxx
13.11.14
✎
12:54
|
(6) Дело в том что схема поставки не идентична объекту из поставки
|
|||
8
Гёдза
13.11.14
✎
12:58
|
(5) Мы обсуждаем "пусть будет" или "как есть"?
|
|||
9
Zixxx
13.11.14
✎
13:06
|
(8) Видно же что обсуждаем абсолютно все, сделать нужно как написал в (0)
|
|||
10
Zixxx
13.11.14
✎
13:09
|
(8) Если есть решение пиши как сделать, если нет то обсуждай, только ерунду не пиши
|
|||
11
tridog
13.11.14
✎
13:22
|
(7) Что значит не идентична? Тогда как по твоему сериализатор догадается, в какие поля чего пихать?
|
|||
12
Zixxx
13.11.14
✎
13:25
|
(11) А какое он поле поместить в IsFolder?
|
|||
13
DmitrO
13.11.14
✎
13:35
|
(0)Обратись к разработчикам платформы с требованием добавить в объекты события: ПриXDTOСериализации(ОбъектXDTO), ПриXDTOДесериализации(ОбъектXDTO).
Скажи мол, так и так или сделаете или я ухожу и всем рассказываю что вы не сделали. :) |
|||
14
Zixxx
13.11.14
✎
13:36
|
(13) :)))
|
|||
15
tridog
13.11.14
✎
13:40
|
(12) ЭтоГруппа в IsFolder. Платформа об этом знает, потому что где-то у ней внутри явно прописано, как сериализовывать объекты встроенного языка в объекты XDTO по платформенным схемам.
А с твоей схемой как она об этом догадается? |
|||
16
Serginio1
13.11.14
✎
13:41
|
(0) Замени в сериализовавнном тексте пространство имен. И будет тебе счастье
|
|||
17
DmitrO
13.11.14
✎
13:44
|
Ну еще можно предложить использовать XLT преобразование, но по сути своей, и по реализации все равно будет фигня какая-то. )
|
|||
18
Serginio1
13.11.14
✎
14:12
|
(17) По сути это КД нужно писать. Кстати вроде как в КД 3 они по такому пути и пошли
http://forum.infostart.ru/forum85/topic119294/ Давно пора. v8: XSD схема программно с нуля. |
|||
19
Zixxx
13.11.14
✎
15:19
|
(15) Я же уже написал как, IsFolder будет в пакете, если не будет то не надо
|
|||
20
tridog
13.11.14
✎
16:00
|
(19) Что значит не надо? Смысл сериализации в том, что после десериализации будет получен эквивалентный объект. Если часть полей включать в серилизацию, а часть не включать - это не сериализация, а проституция какая-то :)
Кажется в ходе этого обсуждения я примерно понял, чего тебе надо, но СериализаторXDTO не предназначен для такого. Если понял правильно - то проще всего делать сериализацию через штатную схему current-config, а потом в полученном xml менять uri. Чтобы менять нужно было в одном месте - перед записью самих объектов запиши "корневой" элемент, для которого установи для current-config префикс. Тогда в xml явное указание uri будет только в одной сторке - ее и поменяешь) |
|||
21
Zixxx
13.11.14
✎
16:11
|
(20) Ага, думал может есть механизм какой-то
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |