Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In OpenAPI, how to define an XML element with attributes AND content?

I would like to describe the XML response payload of a RESTful interface with OpenAPI 2.0 (Swagger 2.0). However, I struggle describing a particular XML tag in the OpenAPI data model.

I can't get Swagger UI to create an appropriate example XML tag in this form, with an attribute and content between the opening and closing XML tags:

<Person id="bar">foo</Person>

The documentation (here) only describes how to model a tag with sub tags (type: object) or a tag with content (type: string), but not both at the same time.

I tried this, which the Swagger Editor accepts without any errors or warnings:

definitions:
  Person:
    type: string
    example: foo
    properties:
      id:
        type: string
        example: bar
        xml:
          attribute: true

but it will be rendered by Swagger UI to the following example:

<Person id="bar"></Person>

As you can see, no "foo" content in there.

like image 316
Philip Daubmeier Avatar asked Feb 03 '17 12:02

Philip Daubmeier


1 Answers

Unfortunately there's no way to represent that using the OpenAPI Specification 2.0, 3.0, or 3.1

This issue is being tracked here and could be addressed in future versions of the specification.

like image 109
cassiomolin Avatar answered Oct 11 '22 01:10

cassiomolin