|
Запись XML с помощью фабрики XDTO | ☑ | ||
|---|---|---|---|---|
|
0
Kasper076
23.03.12
✎
10:20
|
Много полезного узнал из темы v8: v8: Запись xml с помощью фабрики xdto , но вопросы остались.
Пишу выгрузку алкогольной декларации в формате XML. Есть XSD-схема файла выгрузки. Заголовок схемы выглядит так: <?xml version="1.0" encoding="windows-1251" ?> - <!-- edited with XMLSpy v2010 (http://www.altova.com) by MESMERiZE (MiZE) --> - <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://purl.oclc.org/dsdl/schematron" elementFormDefault="qualified" attributeFormDefault="unqualified"> Затем идет элемент - <xs:element name="Файл">, а за ним описание типов использующихся в схеме. Например: <xs:complexType name="АдрТип">. Из указанной выше темы выяснил, что заголовке схемы нужно прописать атрибут targetNamespace="URIПространстваименСхемы". После этого появляется ПакетXDTO содержащий нужную схему. После этого я создал XSD-схему небольшой конфигурации 1С, чтобы изучить ее структуру. Выяснил, что в шапке необходимо прописать еще атрибут xmlns:tns="URIПространстваименСхемы", который будет определять префикс для типов данных содержащихся в схеме. И кроме этого все атрибуты типизированные без префикса нужно привести в виду tupe="tns:ИмяТипа". Возможно что-то неверно сформулировал - поправьте. Далее код выгрузки: Фабрика = СоздатьФабрикуXDTO("D:\Prl_5.xsd"); ПакетXDTO = Фабрика.Пакеты.Получить("http://www.kasper076.ru"); СвойствоФайл = ПакетXDTO.КорневыеСвойства.Получить("Файл"); ТипФайл = СвойствоФайл.Тип; ФайлОбъект = Фабрика.Создать(ТипФайл); ФайлОбъект.ВерсФорм = "4.20"; ФайлОбъект.ДатаДок = Формат(РабочаяДата,"ДФ=dd.MM.yyyy"); ФайлОбъект.НаимПрог = "1с"; ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.ОткрытьФайл("D:\Prl_5.xml", "windows-1251"); ЗаписьXML.ЗаписатьОбъявлениеXML(); Фабрика.ЗаписатьXML(ЗаписьXML, ФайлОбъект, "Файл"); ЗаписьXML.Закрыть(); Созданный файл выглядит так: <?xml version="1.0" encoding="windows-1251" ?> - <Файл xmlns="http://www.kasper076.ru" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ВерсФорм="4.20" ДатаДок="23.03.2012" НаимПрог="1С"> </Файл> А если я выгружаю из программы для сдачи декларации, то он выглядит вот так: <?xml version="1.0" encoding="windows-1251" ?> - <Файл ДатаДок="22.03.2012" ВерсФорм="4.20" НаимПрог="Декларант Алко версия 3.0.1"> Т.е. в нем отсутствуют URIПространстваименСхемы. Подскажите, как сохранить файл без указания URIПространстваименСхемы? |
| Форум | Правила | Описание | Секции | Поиск |