Вход | Регистрация

1С:Предприятие ::

Метки: 

Можно ли в XDTO пакете задать префикс для пространства имен?

Я
   Molotof
 
15.02.18 - 21:11
Добрый вечер!

Вопрос в сабже. Можно ли, и как?
Пояснение:
Созданный с помощью ХДТО ХМЛ файл имеет структуру (отрывок):
<d3p1:Chief>
   <d3p1:LastName xmlns:d5p1="http://dol.minstroyrf.ru/v1.2/eqconcom.xsd">ыыыы</d3p1:LastName>;

   <d3p1:FirstName xmlns:d5p1="http://dol.minstroyrf.ru/v1.2/eqconcom.xsd">aaaa</d3p1:FirstName>;
   <d3p1:MiddleName xmlns:d5p1="http://dol.minstroyrf.ru/v1.2/eqconcom.xsd">jjjj</d3p1:MiddleName>;
   <d3p1:Position xmlns:d5p1="http://dol.minstroyrf.ru/v1.2/eqconcom.xsd">ssss</d3p1:Position>;
</d3p1:Chief>

1. Как задать свой префикс вместо: d3p1?
2. Еще тут ошибка, т.к. Chief относится к одному пространству имен, а вложенные тэги к другому, но построено все в одном пространстве. И валидация со схемой дает ошибку. В 1с это выглядит так, что Chief находится в одном пакете ХДТО, а все остальное в другом.

Спасибо за помощь!
 
 
   H A D G E H O G s
 
1 - 15.02.18 - 21:37
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен(ПрефиксПространстваИмен,ПространствоИмен);
например
ЗаписьXML.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance&quot;);
   Molotof
 
2 - 15.02.18 - 21:44
(1) дело в том, что я использую фабрику ХДТО для создания ХМЛ: ФабрикаXDTO.ЗаписатьXML(ЗаписьXML, Объект_Declaration);
Использование ЗаписатьСоответствиеПространстваИмен вызывает ошибку: "Ошибочный порядок записи XML" в любом месте кода.
   Cyberhawk
 
3 - 15.02.18 - 21:46
Нужно создать ЗаписьХМЛ и первый (корневой) тэг вручную методом в (1), затем уже фабрикой писать в эту ЗаписьХМЛ - префиксы подхватятся автоматом
   Cyberhawk
 
4 - 15.02.18 - 21:49
ЗаписьХМЛ = Новый ЗаписьXML;
    ЗаписьХМЛ.УстановитьСтроку();
    ЗаписьХМЛ.ЗаписатьОбъявлениеXML();
    ЗаписьХМЛ.ЗаписатьНачалоЭлемента(ИмяКорневогоСвойства, ПространствоИмен);
    ЗаписьХМЛ.ЗаписатьСоответствиеПространстваИмен(Префикс, ПространствоИмен);

И далее уже сериализатором / фабрикой пишешь вложенные элементы
   Cyberhawk
 
5 - 15.02.18 - 21:50
Ну и в конце не забыть
    ЗаписьХМЛ.ЗаписатьКонецЭлемента();
   Cyberhawk
 
6 - 15.02.18 - 21:51
И у метода фабрики пространство имен не забывай указывать так-то
   Molotof
 
7 - 15.02.18 - 21:54
Cyberhawk спасибо!

Работает


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует