能否在RAML中定义同时包含文本内容与属性的XML元素?
如何在RAML中定义同时包含文本内容和属性的XML元素
可以实现这种XML元素的定义,你之前的写法错误在于对RAML 1.0类型配置的误解,正确的写法是利用字符串类型的xml配置节点来声明属性,而非使用properties:
MyExample: type: string xml: attributes: myAttribute: type: string
为什么之前的写法会报错:
- 当使用
type: object时,RAML默认将对象映射为仅包含子元素的XML节点,不允许直接添加文本内容,因此会出现错误:Element 'MyExample' cannot have character [children], because the type's content type is element-only。 - 当使用
type: string时,RAML 1.0的字符串类型节点不支持properties属性,这是语法规则限制,所以会触发错误:Error: Property 'properties' not supported in a RAML 1.0 string node。
正确写法的逻辑:
RAML 1.0为字符串类型提供了xml.attributes配置项,专门用于定义对应XML元素的属性。这种写法既保留了节点的文本内容类型(字符串),又能正确声明XML元素的属性,完全匹配你需要的<MyExample myAttribute="abc">Here is some text</MyExample>结构。
内容的提问来源于stack exchange,提问作者James Daily
相关产品推荐
相关产品推荐

