|
избавиться от префикса в xml | ☑ | ||
---|---|---|---|---|
0
04347
20.02.16
✎
09:57
|
пишу обработку, которая создает файл xml
Запись.ЗаписатьНачалоЭлемента("document"); Запись.ЗаписатьНачалоЭлемента("doc_type", "shipping"); Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("is_spirit", "false"); Запись.ЗаписатьКонецЭлемента(); когда выгружаю данные появляеся префикс d3p1: <document> <d3p1:doc_type xmlns:d3p1="shipping"/> <d3p1:is_spirit xmlns:d3p1="false"/> а нужно <document> <doc_type>shipping</doc_type> <is_spirit>false</is_spirit> Как записать файл без префикса? |
|||
1
ДенисЧ
20.02.16
✎
09:58
|
поиск по своему коду на этот префик что-то дал?
|
|||
2
Defender aka LINN
20.02.16
✎
09:59
|
(0) Я может тебя удивлю, но запись XML начинается не с этих строк.
|
|||
3
Лефмихалыч
20.02.16
✎
10:04
|
найди и удали строки, содержащие "ЗаписатьСоответствиеПространстваИмен"
|
|||
4
04347
20.02.16
✎
10:34
|
(3) у меня нет этих строк
вот пример с самого начала Запись=Новый ЗаписьXML; // Открываем файл для записи XML ИмяФайла="EG_TTN_" + Формат(ТекущаяДата(),"ДФ=ггггММдд")+ "_" + Формат(ТекущаяДата(),"ДФ=ЧЧммсс"); ИмяФайлаXML=ИмяФайла+".xml"; Запись.ОткрытьФайл("C:\1c\"+ИмяФайлаXML, "Windows-1251"); Запись.ЗаписатьОбъявлениеXML(); Запись.ЗаписатьНачалоЭлемента("data_file"); //все атрибуты обязательны Запись.ЗаписатьАтрибут("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); Запись.ЗаписатьАтрибут("xsi:noNamespaceSchemaLocation", "EG_TTN_01.xsd"); Запись.ЗаписатьАтрибут("file_ID", ИмяФайла); //EG_TTN_YYYYMMDD_hhmmss.xml Запись.ЗаписатьАтрибут("format_version","0.1"); ДатаФайла = ПреобразованиеДаты(Формат(ТекущаяДата(), "ДЛФ=ДВ")); Запись.ЗаписатьАтрибут("file_date", ДатаФайла); Запись.ЗаписатьАтрибут("doc_count", Строка(КолДок)); //счетчик документов //Идентификационные сведения товарно-транспортной накладной Запись.ЗаписатьНачалоЭлемента("document"); Запись.ЗаписатьНачалоЭлемента("doc_type", "shipping"); //отгрузка ???? d3p1 Запись.ЗаписатьКонецЭлемента(); Запись.ЗаписатьНачалоЭлемента("is_spirit", "false"); Запись.ЗаписатьКонецЭлемента(); |
|||
5
04347
20.02.16
✎
10:38
|
(1) я этот префикс не пишу, (2) я знаю, я привела отрывок файла, в (4) есть начало
|
|||
6
Лефмихалыч
20.02.16
✎
10:47
|
(4) значит пространства имен и префикс уже описаны в том файле, который ты открываешь для дозаписи. Подозреваю, что, если ты префикс выпилишь, файл не воспримет то, для чего ты его делаешь
|
|||
7
04347
20.02.16
✎
11:03
|
(6) как раз наоборот, с префиксами валидацию не проходит. А когда я префиксы вручную выпиливаю, валидацию файл проходит.
Файла нет, он каждый раз создается заново, ему присваивается имя до секунды |
|||
8
Лефмихалыч
20.02.16
✎
11:15
|
(7) откуда тогда взялось желание избаиться от префиксов?
|
|||
9
04347
20.02.16
✎
11:21
|
(8) у меня есть клиент, который производит пиво. Я пишу выгрузку для него в ЕГАИС, файл без префиксов загружается, с префиксами нет "Сообщение: Обрабатывается Файл D:\EG_TTN_20160219_105004.xml ...
Ошибка: Некорректный формат входного XML файла: Ошибка в строке 4 : Элемент "document" имеет недопустимый дочерний элемент "doc_type" в пространстве имен "shipping". Список ожидаемых элементов: "doc_type". Сообщение: Файл D:\EG_TTN_20160219_105004.xml не обработан. |
|||
10
Asmody
20.02.16
✎
11:44
|
вот в этом файле EG_TTN_01.xsd что?
|
|||
11
IlyaSR
20.02.16
✎
11:46
|
похоже на сериализацию элементов
http://www.tdoc.ru/c/dotnet/net-framework/xml-serialization-f2-page3.html |
|||
12
Asmody
20.02.16
✎
11:50
|
попробуй
Запись.ЗаписатьНачалоЭлемента("data_file"); Запись.ЗаписатьАтрибут("xmlns", "d3p1"); |
|||
13
04347
20.02.16
✎
12:17
|
(10) этого файла нет.
Вот у разработчиков записаны требования 6.32.2.4 XSD-схема файла обмена <?xml version="1.0" encoding="windows-1251"?> ? <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified"> ? <xsd:complexType name="contragent"> ? <xsd:all> <xsd:element name="inn" type="xsd:string" /> <xsd:element name="kpp" type="xsd:string" /> <xsd:element name="client_code" type="xsd:string" /> </xsd:all> </xsd:complexType и т.д. а потом приведен пример Ниже приведен пример файла с конкретными значениями параметров для фасованной импортной продукции. <?xml version="1.0" encoding="windows-1251" ?> - <data_file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="EG_TTN_01.xsd" file_ID="EG_TTN_20090413_105500" format_version="0.1" file_date="2009-04-13T11:09:50" doc_count="1"> - <document> <doc_type>shipping</doc_type> <is_spirit>false</is_spirit> - <ttn_inform> <ship_date>2009-04-13T09:00:00</ship_date> <load_date>2009-04-13T09:15:00</load_date> |
|||
14
04347
20.02.16
✎
12:24
|
(12)написала
Запись.ЗаписатьНачалоЭлемента("data_file"); //все атрибуты обязательны Запись.ЗаписатьАтрибут("xmlns", "d3p1"); //ИЗ МИСТЫ Запись.ЗаписатьАтрибут("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); Запись.ЗаписатьАтрибут("xsi:noNamespaceSchemaLocation", "EG_TTN_01.xsd"); Запись.ЗаписатьАтрибут("file_ID", ИмяФайла); //EG_TTN_YYYYMMDD_hhmmss.xml получила <?xml version="1.0" encoding="Windows-1251"?> <data_file xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="d3p1" xsi:noNamespaceSchemaLocation="EG_TTN_01.xsd" file_ID="EG_TTN_20160220_142333" format_version="0.1" file_date="2016-02-20T14:23:33" doc_count="1"> <document> <d3p1:doc_type xmlns:d3p1="shipping"/> <d3p1:is_spirit xmlns:d3p1="false"/> <ttn_inform> может не так нужно было писать? |
|||
15
04347
20.02.16
✎
12:25
|
(11) читаю
|
|||
16
04347
20.02.16
✎
12:31
|
(11) вижу похожее
<anyType xmlns:q1="http://www.w3.org/2001/XMLSchema" d3p1:type="q1:string" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance">This is a string</anyType> вижу, что избавляются от этого, но не понимаю, как это применить к 1с |
|||
17
04347
20.02.16
✎
13:57
|
помогло разбитие на две строки
Запись.ЗаписатьНачалоЭлемента("doc_type"); Запись.ЗаписатьТекст("shipping"); |
|||
18
Asmody
20.02.16
✎
14:32
|
(17) Никто не читает СП.
Второй параметр в ЗаписатьНачалоЭлемента() — это URI пространства имен. Вот оно и пихало его как могло. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |