Xml 属性';MaxOccurs';不能出现在元素';元素'&引用;在RAML定义中

Xml 属性';MaxOccurs';不能出现在元素';元素'&引用;在RAML定义中,xml,mule,raml,Xml,Mule,Raml,我在为Xml输入定义Raml时遇到了这个错误,但是我遇到了这个错误,我已经知道这个问题是针对xsd的,但是我在Raml中没有xsd 有人能提出一个在xml设计中如何定义数组的解决方案吗 因为我已经浏览了下面的Url 输入: <numbers> <value>3</value> <value>2</value> <value>1</value> </numbers> #%R

我在为Xml输入定义Raml时遇到了这个错误,但是我遇到了这个错误,我已经知道这个问题是针对xsd的,但是我在Raml中没有xsd

有人能提出一个在xml设计中如何定义数组的解决方案吗 因为我已经浏览了下面的Url

输入:

<numbers>
    <value>3</value>
    <value>2</value>
    <value>1</value>
</numbers>


#%RAML 1.0
title: Claim Request
version: 0.1
baseUri: http://localhost:8767/claim
mediaType: [ application/xml ]
protocols: HTTP
types:
  value:
    type: string
  numbers:
    type: value[]
    uniqueItems: true
/claimDemo:
  post: 
   body:
    type : numbers
   responses: 
    200:
     body: 
      application/json:
       example: |
              {
                "message" : "Hello World"
              }

试着这样做:

#%RAML 1.0
title: Claim Request
version: 0.1
baseUri: http://localhost:8767/claim
mediaType: [ application/xml ]
protocols: HTTP
types:
  value:
    type: string
  numbers:
    type: value[]
    maxItems: 3
    uniqueItems: true
/claimDemo:
  post: 
   body:
    type : numbers
   responses: 
    200:
     body: 
      application/xml:
       example: |
              {
                "message" : "Hello World"
              }

根据:中的文档,您可以使用
wrapped
选项,这将允许您避免此处定义所面临的问题

请参见下面的示例

#%RAML 1.0
title: Claim Request
version: 0.1
baseUri: http://localhost:8767/claim
mediaType: [ application/xml ]
protocols: HTTP
types:
  value: string
  numbers:
    type: value[]
    xml:
      wrapped: true

/claimDemo:
  post: 
   body:
    type: numbers
   responses: 
    200:
     body: 
      application/json:
       example: |
              {
                "message" : "Hello World"
              }
作为附加说明,为了在初始示例中演示错误的来源,如果删除了数组定义,即:更改:

  numbers:
    type: value[]
    uniqueItems: true

然后您就可以使用如下输入:

<numbers value="a">


嗯,某个地方有一个XSD文件不是有效的模式,我想您的第一个任务就是找到它。嗨,Rafael,我仍然收到相同的错误消息:验证XML时出错。错误:s4s att不允许:属性“maxOccurs”不能出现在元素“element”中。有效负载:java.io。ByteArrayInputStream@669b21b6元素:/arrayApi main/processors/0@ramlwitharrays:arrayApi.xml:10(APIkit路由器)----------------------------------------------------------------验证xml时出错。错误:s4s att不允许:属性“maxOccurs”不能出现在元素“element”中。嗨,Matt,整个想法是确保值是一个数字数组,而不是单个值。响应的第一部分演示了如何实现与完整示例类似的目标。第二部分演示了另一种选择,它演示了原始示例不起作用的原因。
  numbers:
    type: value
<numbers value="a">