Отправка XML в web-сервис используя SoapUI #752927


#0 by Necessitudo
Всем привет. Сделал веб-сервис, сделал xdto-пакет: <xs:schema xmlns:tns="; xmlns:xs="; targetNamespace="; attributeFormDefault="unqualified" elementFormDefault="qualified"> Вызываю веб-сервис из SoapUI, передаю туда такой кусочек: Получаю ошибку:   <faultstring>Неизвестная ошибка. Ошибка разбора XML:  - [6,9] Фатальная ошибка: XML declaration allowed only at the start of the document по причине: Ошибка разбора XML:  - [6,9] Фатальная ошибка: XML declaration allowed only at the start of the document</faultstring> А что не так? Какой тогда текст нужно передавать в веб-сервис?
#1 by gigi789
#2 by Necessitudo
Нет
#3 by gigi789
нажми alt- v
#4 by Necessitudo
А, первая строчка была лишней:) <soap:Text xml:lang="ru_RU">Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: { - [11,4] Проверка дополнительного свойства:     форма: Элемент     имя: SHOP по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [11,4] Проверка дополнительного свойства:     форма: Элемент     имя: SHOP по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {;
#5 by Serginio1
А почему не проверить прямо из 1С?
#6 by Necessitudo
Потому что думаю что моя ошибка очень очевидна и она почти наверняка в  моей схеме.
#7 by Serginio1
Тип=Фабрика.Тип(";);
#8 by palsergeich
ММММ а где корневой элемент XML?
#9 by Necessitudo
Я сделал фабрикуxdto в 1С, получил на выходе такую строку: <HeaderData xmlns="; xmlns:xs="; xmlns:xsi=";     <SHOP>1111</SHOP> Перекинул ее в SoapUI и получил ошибку:   <soap:Text xml:lang="ru_RU">Неизвестная ошибка. Ошибка преобразования данных XDTO: Чтение объекта типа: { - [12,4] Проверка дополнительного свойства:     форма: Элемент     имя: { по причине: Ошибка преобразования данных XDTO: Чтение объекта типа: { - [12,4] Проверка дополнительного свойства:     форма: Элемент     имя: { по причине: Ошибка проверки данных XDTO: Структура объекта не соответствует типу: {;
#10 by palsergeich
targetNamespace=";; пространство имен описано в фабрике? И странно что формируемый элемент не содержит корневого узла
#11 by palsergeich
формируемы XML точнее
#12 by Necessitudo
{Форма.Форма.Форма}: Ошибка при вызове метода контекста (RegisterPayment)     Прокси.RegisterPayment(Обр); по причине: Ошибка вызова операции сервиса:  { по причине: Неизвестная ошибка. Несоответствие типов XDTO: Тип '{' не найден Тип принадлежит пакету, входящему в состав другой фабрики типов XDTO по причине: Несоответствие типов XDTO: Тип '{' не найден Тип принадлежит пакету, входящему в состав другой фабрики типов XDTO
#13 by palsergeich
Я просто оставлю это здесь. Там 3 статьи.
#14 by Necessitudo
Читал.
#15 by palsergeich
#16 by Serginio1
Так ты фабрику прокси используешь? Такое бывает если ты используешь вместо Фабрика=Прокси.ФабрикаXdto; Используешь
#17 by Serginio1
Ты использовал полностью код из 7?
#18 by palsergeich
Вот еще хорошо описано
#19 by Necessitudo
Ура, из 1С все работает! Но если подставить полученную xml в SoapUI, получается ошибка(
#20 by palsergeich
Данный XML НЕ ВАЛИДЕН, нет корневого узла
#21 by palsergeich
И вы значение присваиваете не атрибуту, а элементу, что тоже является неправильным
#22 by Necessitudo
Так ругань идет не на валидность, а на ошибку преобразования данных XDTO. Да и если через 1С сделать XDTO и вызвать этот веб-сервис, то все работает.
#23 by palsergeich
Теоретически вы можете скормить что угодно, но SOAP UI работает с валидными или хотя бы правильно сформированными XML. Ваш XML не валиден изза отсутствия корневого узла и не правильно сформирован изза того что присвоение значения идет не атрибуту, а элементу. так понятно?
#24 by Necessitudo
Конечно. Поменял SHOP на атрибут. <xs:schema xmlns:tns="; xmlns:xs="; targetNamespace="; attributeFormDefault="unqualified" elementFormDefault="qualified"> Вот такую XML 1С выдает: <HeaderData xmlns="; xmlns:xs="; xmlns:xsi="; SHOP="1111"/> Вот такую XML в SoapUI вставить? <?xml version="1.0"?> <HeaderData xmlns="; xmlns:xs="; xmlns:xsi="; SHOP="1111"/>
#25 by palsergeich
И фабрика ждет валидный XML
#26 by palsergeich
Жесть. <HeaderData xmlns=";; xmlns:xs=";; xmlns:xsi="; </Root> Вот валидный XML, а то что у Вас, это , у меня даже слов нет
#27 by palsergeich
#28 by Necessitudo
<faultstring>Неизвестная ошибка. Ошибка разбора XML:  - [6,8] Фатальная ошибка: XML declaration allowed only at the start of the document по причине: Ошибка разбора XML:  - [6,8] Фатальная ошибка: XML declaration allowed only at the start of the document</faultstring>          <detail/>
#29 by Necessitudo
А если без <?xml version="1.0"?> ,          <faultstring>Неизвестная ошибка. Ошибка разбора XML:  - [6,18] Фатальная ошибка: error parsing attribute name по причине: Ошибка разбора XML:  - [6,18] Фатальная ошибка: error parsing attribute name</faultstring>          <detail/>
#30 by palsergeich
<?xml version="1.0"?>  - описание - Оно обязательно Далее тег Root - Корневой элемент, В вашем случае там идет описание схемы.
#31 by palsergeich
Вот простейшее описание XML формата.
#32 by Necessitudo
Ну господи, я знаю что такое xml. Я подставляю в SoapUI то, что выдает мне 1С. Не нужна там похоже валидная XML, ну вроде понятно же уже.
#33 by Serginio1
Посмотри Фиддлером что отправляется в том и ином случае
#34 by Багминот
Ну вы даете! :) То есть вы суете в соап сервис вместо соап-конверта тупо хмл?
#35 by Necessitudo
А чего тут такого?) 1С ж чует XDTO и даже пытается разбирать.
#36 by Багминот
Ну ты же хочешь не из 1С-а обращаться к сервису? Тут надо хотя бы в принципе представлять что такое SOAP. Можно вики почитать: Хотя странно... SoapUI сам правильно формирует запросы, надо только данные подставить вместо "?" в сгенеренную XML-ку.
#37 by Necessitudo
То есть чисто теоретически возможно в качестве параметра передать XML?
#38 by Necessitudo
Я сейчас передаю XML как строку, а на выходе общаюсь с ней как с DOM-объектом. Вариант конечно, но не айс)
#39 by Багминот
А, то есть ты это свою хмл-ку хотя бы внутри соап-конверта передаешь? Тогда надо просто в обернуть. Но это жуткий изврат, передавать хмл внутри хмл. Не надо так.
#40 by Necessitudo
Да, так и делаю. Буду знать что это называется CDATA:)
#41 by Serginio1
Если создашь XML по схеме то и читать можешь тоже по схеме
#42 by Necessitudo
Так а все-таки, как через SOAP передавать какие-то структурированные данные?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С