Change to fix the naming for elements for an array from the element name(XmlElement) defined with array rather than determining it from the element model definition(XmlRootElement)
This commit is contained in:
@@ -704,6 +704,18 @@ SwaggerUi.partials.signature = (function () {
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
var getPrefix = function (name, xml) {
|
||||
var result = name || '';
|
||||
|
||||
xml = xml || {};
|
||||
|
||||
if (xml.prefix) {
|
||||
result = xml.prefix + ':' + result;
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
var getNamespace = function (xml) {
|
||||
var namespace = '';
|
||||
@@ -739,8 +751,12 @@ SwaggerUi.partials.signature = (function () {
|
||||
var attributes = [];
|
||||
|
||||
if (!items) { return getErrorMessage(); }
|
||||
|
||||
value = createSchemaXML(name, items, models, config);
|
||||
var key = name;
|
||||
// If there is a name specified for the array elements, use that for the array elements name | https://github.com/swagger-api/swagger-ui/issues/2577
|
||||
if(items.xml && items.xml.name) {
|
||||
key = items.xml.name;
|
||||
}
|
||||
value = createSchemaXML(key, items, models, config);
|
||||
|
||||
if (namespace) {
|
||||
attributes.push(namespace);
|
||||
@@ -827,7 +843,7 @@ SwaggerUi.partials.signature = (function () {
|
||||
|
||||
if (namespace) {
|
||||
attrs.push(namespace);
|
||||
}
|
||||
}
|
||||
|
||||
if (!properties && !additionalProperties) { return getErrorMessage(); }
|
||||
|
||||
@@ -872,9 +888,10 @@ SwaggerUi.partials.signature = (function () {
|
||||
var output, index;
|
||||
config = config || {};
|
||||
config.modelsToIgnore = config.modelsToIgnore || [];
|
||||
|
||||
var descriptor = _.isString($ref) ? getDescriptorByRef($ref, name, models, config)
|
||||
: getDescriptor(name, definition, models, config);
|
||||
|
||||
|
||||
if (!descriptor) {
|
||||
return getErrorMessage();
|
||||
}
|
||||
@@ -904,10 +921,10 @@ SwaggerUi.partials.signature = (function () {
|
||||
if (arguments.length < 4) {
|
||||
throw new Error();
|
||||
}
|
||||
|
||||
this.config = config || {};
|
||||
this.config.modelsToIgnore = this.config.modelsToIgnore || [];
|
||||
this.name = getName(name, definition.xml);
|
||||
// name is already set by getDescriptorByRef or getDescriptor function depending on the type. Only prefix, if present is needed to be set here | https://github.com/swagger-api/swagger-ui/issues/2577
|
||||
this.name = getPrefix(name, definition.xml);
|
||||
this.definition = definition;
|
||||
this.models = models;
|
||||
this.type = type;
|
||||
@@ -917,8 +934,15 @@ SwaggerUi.partials.signature = (function () {
|
||||
var modelType = simpleRef($ref);
|
||||
var model = models[modelType] || {};
|
||||
var type = model.definition && model.definition.type ? model.definition.type : 'object';
|
||||
name = name || model.name;
|
||||
|
||||
// If model definition xml name is present, then that will be preferred over model name. This is the case of preferring XmlElement name over XmlRootElement name if XmlElement name is provided | https://github.com/swagger-api/swagger-ui/issues/2577
|
||||
if(model.definition.xml && model.definition.xml.name) {
|
||||
name = name || model.definition.xml.name || model.name;
|
||||
}
|
||||
// else only model name will be considered for determination | https://github.com/swagger-api/swagger-ui/issues/2577
|
||||
else {
|
||||
name = name || model.name;
|
||||
}
|
||||
|
||||
if (config.modelsToIgnore.indexOf($ref) > -1) {
|
||||
type = 'loop';
|
||||
config.loopTo = modelType;
|
||||
@@ -929,13 +953,15 @@ SwaggerUi.partials.signature = (function () {
|
||||
if (!model.definition) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Descriptor(name, type, model.definition, models, config);
|
||||
return new Descriptor(name, type, model.definition, models, config);
|
||||
}
|
||||
|
||||
function getDescriptor (name, definition, models, config){
|
||||
var type = definition.type || 'object';
|
||||
|
||||
// If definition xml name is present, then that will be preferred over name | https://github.com/swagger-api/swagger-ui/issues/2577
|
||||
if(definition.xml && definition.xml.name) {
|
||||
name = definition.xml.name || name;
|
||||
}
|
||||
if (!definition) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user