diff --git a/src/core/plugins/samples/fn.js b/src/core/plugins/samples/fn.js
index cdfc927c..994a2a3b 100644
--- a/src/core/plugins/samples/fn.js
+++ b/src/core/plugins/samples/fn.js
@@ -214,6 +214,9 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und
// generate xml sample recursively for array case
if(type === "array") {
if (!Array.isArray(sample)) {
+ if(typeof sample === "string") {
+ return sample
+ }
sample = [sample]
}
const itemSchema = schema
@@ -239,6 +242,10 @@ export const sampleFromSchemaGeneric = (schema, config={}, exampleOverride = und
// generate xml sample recursively for object case
if(type === "object") {
+ // case literal example
+ if(typeof sample === "string") {
+ return sample
+ }
for (let propName in sample) {
if (!sample.hasOwnProperty(propName)) {
continue
@@ -382,7 +389,9 @@ export const inferSchema = (thing) => {
export const createXMLExample = (schema, config, o) => {
const json = sampleFromSchemaGeneric(schema, config, o, true)
if (!json) { return }
-
+ if(typeof json === "string") {
+ return json
+ }
return XML(json, { declaration: true, indent: "\t" })
}
diff --git a/test/unit/core/plugins/samples/fn.js b/test/unit/core/plugins/samples/fn.js
index c2b327e0..90c1de22 100644
--- a/test/unit/core/plugins/samples/fn.js
+++ b/test/unit/core/plugins/samples/fn.js
@@ -1115,6 +1115,27 @@ describe("createXMLExample", function () {
expect(sut(definition, {}, [{ notalien: "test" }])).toEqual(expected)
})
+ it("should return literal example", () => {
+ let expected = "\n\t\n\t0\n"
+ let definition = {
+ type: "array",
+ items: {
+ properties: {
+ alien: {
+ type: "string"
+ },
+ dog: {
+ type: "integer"
+ }
+ }
+ },
+ xml: {
+ name: "aliens"
+ }
+ }
+
+ expect(sut(definition, {}, expected)).toEqual(expected)
+ })
})
describe("object", function () {
@@ -1562,6 +1583,25 @@ describe("createXMLExample", function () {
expect(sut(definition, {}, { alien: "test", dog: 1 })).toEqual(expected)
})
+ it("should return literal example", () => {
+ let expected = "\n\t\n\t0\n"
+ let definition = {
+ type: "object",
+ properties: {
+ alien: {
+ type: "string"
+ },
+ dog: {
+ type: "integer"
+ }
+ },
+ xml: {
+ name: "aliens"
+ }
+ }
+
+ expect(sut(definition, {}, expected)).toEqual(expected)
+ })
})
})