0
votes

Is it possible to define an XML namespace in a RAML datatype? I found a reference to it being possible in the RAML spec on github, but I cannot get it working in MuleSofts API Designer.

For example I was thinking I could define my RAML as below, but I am getting an error in API Designer that the expected type is object, but it got a string.

#%RAML 1.0 DataType


type: object
properties: 
  top:
    type: object
    properties: 
      abc:
        xml:
          attribute: true
          name: abc 
      xmlNamespace:
        xml: 
          attribute: true
          namespace: http://google.com
      node:
        type: string
example:
  <xml>
    <top abc="123" xmlns="http://google.com">
      <node>12345</node>
    </top>
  </xml>
1

1 Answers

0
votes

The namespace is for when the xml element should have a namespace like so:

#%RAML 1.0 DataType
properties: 
  top:
    type: object
    xml:
      name: top
      wrapped: true
      namespace: f
    properties: 
      abc:
        xml:
          attribute: true
          name: abc
example:
  <mytype>
    <f:top abc="123">
    </f:top>
  </mytype>

If you just want an attribute names xmlns then maybe try something like this:

#%RAML 1.0 DataType
properties: 
  top:
    type: object
    xml:
      name: top
      wrapped: true
    properties: 
      abc:
        xml:
          attribute: true
          name: abc
      xmlns:
        default: http://google.com
        xml:
          attribute: true
          name: xmlns
        
example:
  <mytype>
    <top abc="123" xmlns="http://google.com">
    </top>
  </mytype>