Skip to main content

XML Plugin

The XML plugin adds support for XML request and response bodies in Drift.

1. When to Use This Plugin

Enable the XML plugin when your API specification defines operations that send or receive application/xml payloads.

2. Registering the Plugin

Add the plugin to the plugins section of your Drift file:

plugins:
- name: oas
- name: xml

3. Sending XML Bodies

XML request bodies must be sent as structured content. Drift maps the object to XML using the schema definition in your OpenAPI specification.

operations:
createPet_Success:
target: petstore-oas:addPet
description: "Create a new pet with a valid payload"
parameters:
headers:
content-type: application/xml
request:
body:
Pet:
id: 99
name: "bluey"
photoUrls:
- "https://example.com/pets/bluey.jpg"
status: "available"
expected:
response:
statusCode: 200

If the media type is defined in your OpenAPI specification, Drift uses that definition and you do not need to repeat the Content-Type header.

Body syntax

The structured body maps to XML as follows:

  • A key prefixed with @ sets an XML attribute: "@id": 10 becomes <element id="10">.
  • A plain key sets a child element: name: bluey becomes <name>bluey</name>.
  • "#text" sets an explicit text node: "#text": 10.99 becomes the text content of the element.

4. Supported OpenAPI XML Schema Features

Drift supports these OpenAPI XML schema features:

Supported:

xml:
attribute: true
xml:
wrapped: true

Not supported:

xml:
prefix: "smp"
namespace: "http://example.com/schema"

Drift does not support XML namespace or prefix matching.

5. Validation Behavior

The XML plugin enables Drift to work with XML payloads defined in your API specification during request execution and response validation.