Forum Discussion

xtrem_32xx's avatar
xtrem_32xx
New Contributor
3 years ago

XML response with array of objects in OpenAPI not showing tag names

i am sorry i am not sure that this is the right forum, but hope anyone can help me:

 

i am trying to generate an array of object, with the following path:

 

paths:
  /book/:
    get:
      tags:
        - "Help"
      summary: "show my book"

      produces:
      - "application/xml"
      - "application/json"
      parameters: []
      responses:
        "200":
          description: "successful operation"
          schema:
            type: "array"
            xml:
              name: Book
            items:
              $ref: "#/definitions/Book"
        "400":
          description: "Invalid status value"
      x-swagger-router-controller: "swagger_server.controllers.book_controller"

and the following definitions:

 

definitions:
  BookAuthor:
    type: object
    properties:
      Author:
        type: string
      Bio:
        type: string         
        xml: 
          attribute: true 
    xml:
      name: Author
  Book:
    type: object
    properties:
      Title:
        type: string
      Description:
        type: "string"
      BookAuthors:
        type: array
        items:
          $ref: "#/definitions/BookAuthor"
        xml:
          name: BookAuthors
          wrapped: true
    xml:
      name: "MyBook"
    example:
      Title: "Name of the book"
      description: "Book Description"
      BookAuthors: [["Author 1", "Author 1 Bio"], ["Author 2", "Author 2 Bio"]]

The xml showing is missing the Author tags, being displayed as indexes (0,1), here what i am getting:

 

<?xml version="1.0" encoding="UTF-8"?>
<MyBook>
    <Title>Name of the book</Title>
    <description>Book Description</description>
    <BookAuthors>
        <Author>
            <0>Author 1</0>  <--- Here showing <0> instead of <Author>
            <1>Author 1 Bio</1> <--- Here showing <1> instead of <Bio>
        </Author>
        <Author>
            <0>Author 2</0>
            <1>Author 2 Bio</1>
        </Author>
    </BookAuthors>
</MyBook>

 How can i get the <Author></Author> & <Bio></Bio> to be displayed?