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的主要内容,如果未能解决你的问题,请参考以下文章