310 lines
8.2 KiB
JSON
310 lines
8.2 KiB
JSON
{
|
|
"openapi": "3.0.0",
|
|
"info": {
|
|
"version": "1.0.0",
|
|
"title": "XML definition with oneOf & anyOf",
|
|
"description": "Definition to cover multiple XML examples"
|
|
},
|
|
"paths": {
|
|
"/foo": {
|
|
"post": {
|
|
"requestBody": {
|
|
"content": {
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "XML schema with oneOf for /foo request and mediaType text/xml",
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OneOfOne"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfFour"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"application/xml": {
|
|
"schema": {
|
|
"description": "fallback XML schema with mediaType application/xml",
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "XML schema with mediaType text/xml",
|
|
"$ref": "#/components/schemas/foobarResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/bar": {
|
|
"post": {
|
|
"requestBody": {
|
|
"content": {
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "XML schema with anyOf for /bar request and mediaType text/xml",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OneOfOne"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfFour"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"application/xml": {
|
|
"schema": {
|
|
"description": "fallback XML schema with mediaType application/xml",
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "XML schema with mediaType text/xml",
|
|
"$ref": "#/components/schemas/foobarResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/foobar": {
|
|
"post": {
|
|
"requestBody": {
|
|
"content": {
|
|
"application/xml": {
|
|
"schema": {
|
|
"description": "XML schema with oneOf for /foobar request and mediaType application/xml",
|
|
"oneOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OneOfOne"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfFour"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "fallback XML schema with mediaType text/xml",
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "XML schema with mediaType application/xml",
|
|
"$ref": "#/components/schemas/foobarResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"/barfoo": {
|
|
"post": {
|
|
"requestBody": {
|
|
"content": {
|
|
"application/xml": {
|
|
"schema": {
|
|
"description": "XML schema with anyOf for /barfoo request and mediaType application/xml",
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/OneOfOne"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfTwo"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OneOfFour"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"text/xml": {
|
|
"schema": {
|
|
"description": "fallback XML schema with mediaType text/xml",
|
|
"$ref": "#/components/schemas/OneOfThree"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK",
|
|
"content": {
|
|
"application/xml": {
|
|
"schema": {
|
|
"description": "XML schema with mediaType application/xml",
|
|
"$ref": "#/components/schemas/foobarResponse"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"components": {
|
|
"schemas": {
|
|
"OneOfOne": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Body": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fooOne": {}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv",
|
|
"namespace": "http://schemas.xmlsoap.org/soap/envelope/",
|
|
"name": "Envelope"
|
|
}
|
|
},
|
|
"OneOfTwo": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Body": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fooTwo": {}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv",
|
|
"namespace": "http://schemas.xmlsoap.org/soap/envelope/",
|
|
"name": "Envelope"
|
|
}
|
|
},
|
|
"OneOfThree": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Body": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fooThree": {}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv",
|
|
"namespace": "http://schemas.xmlsoap.org/soap/envelope/",
|
|
"name": "Envelope"
|
|
}
|
|
},
|
|
"OneOfFour": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Body": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fooFour": {}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv",
|
|
"namespace": "http://schemas.xmlsoap.org/soap/envelope/",
|
|
"name": "Envelope"
|
|
}
|
|
},
|
|
"foobarResponse": {
|
|
"type": "object",
|
|
"properties": {
|
|
"Body": {
|
|
"type": "object",
|
|
"properties": {
|
|
"foobarResObj": {
|
|
"type": "object"
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv"
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"xml": {
|
|
"prefix": "soapenv",
|
|
"namespace": "http://schemas.xmlsoap.org/soap/envelope/",
|
|
"name": "Envelope"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|