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


1С:Предприятие :: 1С:Предприятие 8 общая

Пространства имён для преобразования xml-строк 1С

Пространства имён для преобразования xml-строк 1С
Я
   EugeneSemyonov
 
22.09.16 - 15:59
Доброго дня, всем!
Подскажите, кто знает какие пространства имён XSL необходимо использовать для преобразования результатов сериализации объектов 1C?
Конкретно мне нужно из сериализованного документа удалить реквизит. Шаблон для преобразования сообщений обмена 1С у меня есть, но на сериализованном объекте он не отрабатывает.
Пример сериализованного объекта:
<DocumentObject.Заявка xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config"; xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:type="DocumentObject.Заявка">
    <Ref>660325f5-80a7-11e6-941d-ac220bb7949b</Ref>
    <DeletionMark>false</DeletionMark>
    <Date>2016-09-22T12:31:55</Date>
    <Number>00ЗК-00014</Number>
    <Posted>false</Posted>
    <Фирма>00000000-0000-0000-0000-000000000000</Фирма>
    <ДатаПоставки>2016-09-21T00:00:00</ДатаПоставки>
    <Павильон>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Павильон>
    <Газель>0dc7301f-359b-11e4-a3e8-bcee7b9ca45f</Газель>
    <Ответственный>00000000-0000-0000-0000-000000000000</Ответственный>
    <Обработана>false</Обработана>
    <Комментарий/>
    <ЗаявкаПоваров>false</ЗаявкаПоваров>
    <КонтрольнаяСумма/>
    <Состав>
        <Номенклатура>801eb422-addd-11e3-9528-00155d00c900</Номенклатура>
        <Единица>ac5c9e52-8772-11e4-8bf7-bcee7b9ca45f</Единица>
        <Количество>0</Количество>
        <Коэффициент>0.4</Коэффициент>
        <КолЗак>0</КолЗак>
        <ЕдЗак>00000000-0000-0000-0000-000000000000</ЕдЗак>
        <КоэффЗак>0</КоэффЗак>
        <Справочно>0</Справочно>
    </Состав>
</DocumentObject.Заявка>
Шаблон преобразования сообщения обмена:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; xmlns:v8msg="http://v8.1c.ru/messages"; <--Здесь нужно указать правильное пространство имён -->>
    <xsl:output method="xml" encoding="UTF-8"/>
       <xsl:template match="node() | @*">
          <xsl:copy>
              <xsl:apply-templates select="@* | node()"/>
          </xsl:copy>
       </xsl:template>
    <xsl:template match=" <--Здесь нужно указать правильное пространство имён --> /DocumentObject.Заявка/КонтрольнаяСумма"/>
</xsl:stylesheet>
 
 
   Cyberhawk
 
1 - 22.09.16 - 17:03
"Шаблон преобразования сообщения обмена" // Впервые слышу
   Mauser
 
2 - 22.09.16 - 17:15
Вот интересно.
Какая связь между "мне нужно удалить реквизит" и "Шаблон для преобразования сообщений обмена"?

Мне холодно, у меня есть четверг, но кружка не кактус?
   Fragster
 
3 - 22.09.16 - 17:35
   EugeneSemyonov
 
4 - 23.09.16 - 09:54
(1) Пусть будет: "XSL с помощью которого получается преобразовывать XML-ные сообщения обмена 1С" 
(2) Прикол в том что без указания правильного пространства имён строка полностью копируется без удаления ненужного мне реквизита.
(3) вставил xmlns="http://v8.1c.ru/8.1/data/enterprise/current-config"; вместо xmlns:v8msg="http://v8.1c.ru/messages";, попробовал вместе эти пространства имен оставить - результата 0. Есть у кого матчасть? Дайте ссылку.
   Mauser
 
5 - 23.09.16 - 10:04
   Fragster
 
6 - 23.09.16 - 10:22
(4) xmlns="" надо вставить наверх, во второй кусок надо вставить что-то, чтобы было типа ".//DocumentObject.Заявка/..."
   Fragster
 
7 - 23.09.16 - 10:22
это же выражение xpath, вроде
   EugeneSemyonov
 
8 - 26.09.16 - 12:24
(5) Спасибо. Гуглом я пользоваться умею. 1С-ных пространств имён в буржуйских туториалах нет и не будет.
От 1С есть у кого-нить рекомендации и примеры по использованию ПреобразованиеXSL?
   EugeneSemyonov
 
9 - 26.09.16 - 12:32
(6) "не выходит каменный цветок..."
   hhhh
 
10 - 26.09.16 - 12:43
есть пространство имен. А есть схема. Это две разные вещи.
 
 Рекламное место пустует
   Fragster
 
11 - 26.09.16 - 12:44
(10) автор хочет сделать так, чтобы из одного current-config преобразовать XML в другой current-config. подход интересный, в некоторых случаях может ускорить выгрузку-загрузку данных в десятки раз.
   Mauser
 
12 - 26.09.16 - 12:50
(8) И чем 1С-ное пространство имен отличается от не 1С-ного?
Злобные 1С-ники придумали свой XML и XSLT?
   hhhh
 
13 - 26.09.16 - 21:51
(12) это в 1с давно всё придумали, задолго до автора.
   Mauser
 
14 - 26.09.16 - 22:00
(13) Это желтые их черти бермутят воду во пруду, все придумал Нуралиев в восемнадцатом году.
   DrShad
 
15 - 26.09.16 - 22:13
да забей ты вообще на пространство имен, оно нужно для описания в схеме различных типов и для чтения практически бесполезная штука
   Mauser
 
16 - 26.09.16 - 22:15
Практически бесполезная штука [x]
   EugeneSemyonov
 
17 - 27.09.16 - 11:54
(15) Подскажи, пожалуйста, тогда почему реквизит не удаляется?
   EugeneSemyonov
 
18 - 27.09.16 - 11:58
(12) не поверишь! именем! ;-)
   hhhh
 
19 - 27.09.16 - 12:02
(17) но почему оно должно удалять? Где у вас в шаблоне этом удаление?
   Mauser
 
20 - 27.09.16 - 12:03
(19) Перед тегом закрытия </xsl:stylesheet>
   Mauser
 
21 - 27.09.16 - 12:04
(19) Оно создает новый документ путем копирования всех узлов и атрибутов, за исключением указанного. Для определенного элемента происходит ничего =)
   hhhh
 
22 - 27.09.16 - 12:08
(21) ну а причем тут пространство имен? Может же быть 10 пространств имен в одном документе?
   EugeneSemyonov
 
23 - 27.09.16 - 12:08
Миш, ты ничего не подскажешь?
   Mauser
 
24 - 27.09.16 - 12:10
(22) Да. Для срабатывания шаблона производящего ничего, ему надо попасть в квалифицированное имя узла. Оно прямо зависит от пространства имен обрабатываемого документа и немного косвенно - от пространства имен по умолчанию, в котором идет обработка шаблонов. Про это подробно написано по ссылкам в (5)
   Mauser
 
25 - 27.09.16 - 12:12
Но, вместо изучения матчасти, Женя ждет готового решения, потому что, дескать, пространство http://v8.1c.ru/8.1/data/enterprise/current-config - особенное
   EugeneSemyonov
 
26 - 27.09.16 - 12:55
(25) Честно признаться, на данный момент, необходимость использования данного решения отпала, но я уверен - пригодится в будущем. Поэтому я не забросил тему, а попробовал сделать как советовал ещё Fragster (3) (6). Не получилось. Прямо сейчас подробно изучать XSL в мои планы не входит.
В принципе тему можно закрывать, хоть и без решения. За ссылки спасибо ;-)


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