RAML:如何仅导出特定类型的 XSD

Posted

技术标签:

【中文标题】RAML:如何仅导出特定类型的 XSD【英文标题】:RAML: how to export only particular type of XSD 【发布时间】:2016-03-15 13:17:46 【问题描述】:

我正在编写一个 RAML,其中响应是一个 XML,它对应于外部 XSD 中定义的许多其他类型中的一种特定类型。 在 RAML 中定义参数时,有没有办法从 XSD 中指定特定类型名称? IE。现在我这样定义它:

   responses: 
      200:
        body:
          application/xml: 
              schema: !include schemas/ManyManyTypesInside.xsd  

但我想指定在 xsd 中定义的特定类型用作响应类型。

请注意,我不想将类型提取到新文件中。

【问题讨论】:

【参考方案1】:

问题的答案取决于 RAML 版本。

0.8 版不支持引用 XML Schema 的内部元素。

RAML v1.0 中已添加此功能,格式如下:

schema: !include elements.xsd#Foo

【讨论】:

【参考方案2】:

我同意不在规范中,但您可以使用 RAML Tools for .Net 做到这一点

在响应模式中,您指定类型的名称。

见https://github.com/mulesoft-labs/raml-dotnet-tools#xml-schemas

【讨论】:

这很有趣。 Anypoint RAML 编辑器从链接为 RAML 生成错误:“描述资源路径位置类型无效的 XML 模式 (PurchaseOrderType): Content is not allowed in prolog.test.raml /order_tracker/src/main/resources line 140 RAML Problems” 【参考方案3】:

如果不将 XSD 部分分离到它自己的 XSD 中,RAML 就不可能做到这一点。

为什么不能仅出于文档/RAML 目的将其分开?

【讨论】:

因为将所有信息保存在一个模式文档中很方便。 XSD 允许这样做。

以上是关于RAML:如何仅导出特定类型的 XSD的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Raml 的外部文件中定义一个类型的数组?

具有限制的 XSD 数据类型字符串:max。仅 2 位数字

如何在 RAML 1.0 中覆盖对象数组属性类型

Mulesoft RAML - 在嵌套 XSD 文件上具有请求主体架构和响应主体架构的 Api 规范

RAML 资源类型和特征 VS Swagger $ref

RAML 是不是支持同一内容类型的多个响应模式?