Имя: Пароль:
1C
1С v8
чтение xdto по схеме http://schemas.microsoft.com/ado/2009/11/edm
0 mxs089
 
07.12.15
12:57
получаю метаданные по odata, мне приходит xml файл, содержимое:

<?xml version="1.0" encoding="UTF-8"?>
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx";
        Version="1.0">
    <edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";
            m:DataServiceVersion="3.0"
            m:MaxDataServiceVersion="3.0">
        <Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm";
                Namespace="StandardODATA">
            <EntityType Name="Catalog_Номенклатура">
                <Key>
                    <PropertyRef Name="Ref_Key"/>
                </Key>

и т.д.

пытаюсь прочитать этот файл

Чтение = Новый ЧтениеXML;
    
ТипОбъектаXDTO = ФабрикаXDTO.Тип("http://schemas.microsoft.com/ado/2009/11/edm";, "StandardODATA");
    
Чтение.ОткрытьФайл(ВременныйФайл);
    
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение, ТипОбъектаXDTO);
ОбъектXDTO.Проверить();
    
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
    
Данные = Сериализатор.ПрочитатьXDTO(ОбъектXDTO.DataServices);

падает с ошибкой:

{Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (ПрочитатьXDTO)
    Данные = Сериализатор.ПрочитатьXDTO(ОбъектXDTO);
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://www.w3.org/2001/XMLSchema}anyType    Форма: Элемент    Тип: {http://www.w3.org/2001/XMLSchema}anyType
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: Version    Форма: Атрибут    Тип: {http://www.w3.org/2001/XMLSchema}anySimpleType
1 User_Agronom
 
07.12.15
13:04
Кури фабрику в своей конфе.
http://schemas.microsoft.com/ado/2009/11/edm - это просто набор символов (не ссылка)
2 mxs089
 
07.12.15
13:32
конфигурация чистая, создал там один документ, включил его в odata (УстановитьСоставСтандартногоИнтерфейсаOData)
3 Trotter
 
07.12.15
14:05
(0) где вы прочитали про фабрики ? не кто секретом не делится, а надо бы мне про них почитать ) с примерами желательно :)
4 Trotter
 
07.12.15
14:10
предположу, тут в скобках может должен быть ОбъектXDTO  ??
Сериализатор = Новый СериализаторXDTO(ФабрикаXDTO);
5 mxs089
 
07.12.15
14:16
6 User_Agronom
 
07.12.15
14:40
(3) Хорошей статьи не нашел. Читал разные и пробовал составить общее представление о работе с XDTO.
7 Serginio1
 
07.12.15
16:28
8 Serginio1
 
07.12.15
17:01
Это MS в свое время разработала формат для описания связей в БД. Правда сейчас используется Соde First. По ней генерятся классы, а вот за сериализацию, десериализацию  отвечает DataServiceContext