Как добавить атрибут в Xml? - PullRequest
0 голосов
/ 25 ноября 2018

У меня есть запрос, который в качестве атрибута называется operation = "V" (fwxtrasptos001 operacion = "V").Это запрос

<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?>
<envelope>
    <version>v1.001</version>
    <tipo_codificacion>application/x-www-form-urlencoded</tipo_codificacion>
    <fwxtrasptos001 operacion="V">
        <origen_peticion></origen_peticion>
        <clientNumber></clientNumber>
        <cardNumber></cardNumber>
        <points></points>
    </fwxtrasptos001>
</envelope>

Это мой класс запроса

@Xml(name = "fwxtrasptos001")
data class TransferPointsValidationRequest (

        @PropertyElement(name = "origen_peticion")
        val petition:String,
        @PropertyElement(name = "clientNumber")
        val userNumber:Long,
        @PropertyElement(name = "cardNumber") 
        val cardNumber:Long,
        @PropertyElement(name = "points")
        val pointsToTransfer:Long  
)

Это мой конверт запроса:

@Xml(name = "envelope")
class EnvelopeTransferPointsValidation (

        @Element(
                typesByElement = [
                    ElementNameMatcher(type = TransferPointsValidationRequest::class, name = "fwxtrasptos001")
                ]
        )
        val body: SoapRequestBody,

        @PropertyElement(name = "version")
        val version: String = "v1.002",

        @PropertyElement(name = "tipo_codificacion")
        val codificationType: String = "application/x-www-form-urlencoded"

)

С кодом, который у меня есть, как я могудобавьте атрибут fwxtrasptos001 operacion = "V" в начало тега xml

1 Ответ

0 голосов
/ 25 ноября 2018

Начальный тег состоит из имени элемента плюс ноль или более атрибутов (пары ключевое слово / значение).Соответствующий конечный тег должен содержать (одинаковое) имя элемента;он не может содержать атрибуты.Таким образом, имя в конечном теге должно совпадать с именем в начальном теге;атрибуты не являются частью имени.

Я не знаком с технологией, которую вы используете, но я подозреваю, что ваш код name = "fwxtrasptos001 operacion='V' отражает это недоразумение: вы должны включать только имя здесь, а неАтрибуты.

ПРИМЕЧАНИЕ

Вопрос был сильно отредактирован с момента написания этого ответа, поэтому теперь может показаться, что ответ имеет мало отношения к вопросу.

...