eclipse / microprofile-open-api

Microprofile open api
Apache License 2.0
131 stars 81 forks source link

Please add an annotation @Xml to be added to @Schema to add xml attributes to schemas #530

Open JeroenHeemskerk opened 2 years ago

JeroenHeemskerk commented 2 years ago

When you define a Schema object you can supply an Xml object. But when you use the @Schema annotation there is no possibity to add an @Xml annotation.

I would like to do for example

@Schema(name="MyBookings", description="POJO that represents a set of bookings.", 
        xml = @Xml(name="Bookings", wrapped=true))
public class Bookings {
   @Schema(required=true)
   private Booking[] bookings;
}
@Schema(name="MyBooking", description="POJO that represents a booking.", 
        xml = @Xml(name="Booking"))
public class Booking {
    @Schema(required = true, example = "32126319")
    private String airMiles;

    @Schema(required = true, example = "window")
    private String seatPreference;
}

The only workaround to force an xml element in the schema is to make an overrride of filterSchema in an OASFilter

MikeEdgar commented 2 years ago

@JeroenHeemskerk have you tried using the JAXB annotations for this? I.e. @XmlElement, @XmlType, etc.

JeroenHeemskerk commented 2 years ago

No i have not tried that, because it was not mentioned in the documentation that this would generate an XML section in the schema.

I am currently no longer able to test it out, but maybe someone else would.

MikeEdgar commented 1 year ago

We discussed this request in the 2023-01-30 group call and decided it would be a good addition to the next minor (3.2, if we do it) or major (4.0) release.