Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !5371

always use @JacksonXmlElementWrapper and read xml data from reference…

  • Review changes

  • Download
  • Email patches
  • Plain diff
Open Administrator requested to merge github/fork/jzrebiec/bugfix/proper-xml-support into master Feb 19, 2020
  • Overview 0
  • Commits 2
  • Pipelines 1
  • Changes 42

Created by: jzrebiec

Hello All,

This pull request adds:

  • always writes JacksonXmlElementWrapper even if xml.wrapped is false, because useWrapping is true from Jackson 2.1
  • get xml properties from referenced schema.

Here is example of yaml:

openapi: 3.0.0
info:
  title: API
  version: 1.0.0

paths:
  /:
    post:
      requestBody:
        required: true
        content:
          application/xml:
            schema:
              $ref: '#/components/schemas/Request'
      responses:
        '200':
          description: OK

components:
  schemas:
    Request:
      type: object
      properties:
        simpleAttribute:
          type: string
          xml:
            attribute: true
            name: ATTR
        refAttribute:
          $ref: '#/components/schemas/RefAttribute'
        simpleNode:
          type: object
          properties:
            prop1:
              type: string
            prop2:
              type: string
          xml:
            name: NODE
        refNode:
          $ref: '#/components/schemas/RefNode'
        simpleArray:
          type: array
          items:
            type: string
            xml:
              name: ARR_ITEM
        simpleWrappedArray:
          type: array
          items:
            type: string
            xml:
              name: ARR_ITEM
          xml:
            wrapped: true
            name: WRAPPED_ARRAY
        nodeArray:
          type: array
          items:
            $ref: '#/components/schemas/RefNode'
        wrappedNodeArray:
          type: array
          items:
            $ref: '#/components/schemas/RefNode'
          xml:
            wrapped: true
            name: WRAPPED_NODE_ARRAY
      xml:
        name: Request

    RefAttribute:
      type: string
      enum: [A, B, C]
      xml:
        name: REF_ATTR
        attribute: true

    RefNode:
      type: object
      properties:
        prop1:
          type: string
        prop2:
          type: string
      xml:
        name: REF_NODE

   

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language. @bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @bkabrda (2020/01)
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/jzrebiec/bugfix/proper-xml-support