You are viewing the documentation for Blueriq 17. Documentation for other versions is available in our documentation directory.
SOAP
Three types of communication protocols are supported: SOAP 1.1, SOAP 1.2 and REST. For the communication HTTP is used. If you want to use something else such as JMS, you can create custom code which sends the SOAP message over JMS instead of HTTP.
Blueriq supports the WSDL 1.1 standard. It consists of service, binding, portType, message and type definitions. There are additional restrictions on the WSDL files:
- A WSDL file may only contain 1 service, 1 binding and 1 portType definition. If you need more of these elements, create a separate WSDL files and import them separately.When sending a message to a deleted service/binding/portType, the behavior you see is that at runtime the message is not translated to data in your profile.
- The communication may only be done in document/literal style. Other styles are not supported.
- For the elements and data types used in the schema only the namespace http://www.w3.org/2001/XMLSchema is supported.
- WSDL:Fault messages are currently not supported, they are ignored.
- Chameleon Schemas not supported (http://www.xfront.com/ZeroOneOrManyNamespaces.html)
- For SimpleType Restrictions only the baseType is used. Restrictions on the domain are ignored (For example: <xs:maxInclusive value=“100”/> for a simpleType with base integer.)
- When you have multiple files, you have to zip them.
- No folders are allowed in ZIP files, they need to be 'flat'
- The webservice has to be in the entry point module, or a mapping has to be made between the entrypoint module and the webservice module.
- When using BAAS, the WSDL should be WSI BP 1.2 compliant (http://ws-i.org/profiles/BasicProfile-1.2-2010-11-09.html).
- Only XML and JSON communication is supported with REST services.
- Empty fields in a message (example: <Number></Number>) are parsed as unknown. The exception are string fields. Those are parsed as empty string (””).
- Substitution Groups are not supported.
- WS-Addressing is ignored out-of-the-box (http://www.w3.org/Submission/ws-addressing/), but you can use the ISoapMessageHandler interface to use this protocol (see How to modify a SOAP request before being sent)..
- WS-Security is ignored out-of-the-box (https://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf), but you can use the ISoapMessageHandler interface to use this protocol (see How to modify a SOAP request before being sent).
- WS-SecurityPolicy is ignored (http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/)
- WS-Trust is ignored (http://docs.oasis-open.org/ws-sx/ws-trust/v1.4/ws-trust.html)
- WS-Secureconversation is ignored (http://docs.oasis-open.org/ws-sx/ws-secureconversation/v1.4/ws-secureconversation.html)
- WS-ReliableMessaging is ignored (http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.2-spec-os.html)
The following table shows items that you can encounter in a WSDL/XSD and if we support them. An entry with 'Yes' is actively used, while entries which are 'Ignored' can be present in your WSDL/XSD, but nothing is done with them.
XSD element | Supported |
---|---|
all | Yes |
annotation | Ignored |
any | Yes, treated as String |
anyAttribute | Yes, treated as String |
appInfo | Ignored |
attribute | Yes, when minOccurs>1 a multivalued attribute is used |
attributeGroup | Yes |
choice | Yes |
complexContent | Yes |
complexType | Yes |
documentation | Ignored |
element | Yes |
extension | Yes |
field | Ignored |
group | Yes |
import | Yes |
include | Yes |
key | Ignored |
keyref | Ignored |
list | Yes, treated as String |
notation | Ignored |
redefine | Yes |
restriction | Yes |
schema | Yes |
selector | Ignored |
sequence | Yes, when minOccurs>1 a multivalued relation is used |
simpleContent | Yes |
simpleType | Yes |
union | Yes, it is treated as string |
unique | Ignored |
Primitive data types of the XSD are translated to Blueriq data types like this:
XSD Data Type | Blueriq Data Type |
---|---|
anyURI | String |
base64Binary | String |
boolean | Boolean |
byte | Integer |
date | Date |
datetime | DateTime |
decimal | Number |
double | Number |
duration | String |
float | Number |
gDay | String |
gMonth | String |
gMonthDay | String |
gYear | String |
gYearMonth | String |
hexBinary | String |
ID | String |
IDREF | String |
int | Integer |
integer | Integer |
language | String |
long | Integer |
Name | String |
NCName | String |
negativeInteger | Integer |
NMToken | String |
nonNegativeInteger | Integer |
nonPositiveInteger | Integer |
normalizedString | String |
positiveInteger | Integer |
QName | String |
short | Integer |
string | String |
time | Time |
token | String |
unsignedByte | Integer |
unsignedInt | Integer |
unsignedLong | Integer |
unsignedShort | Integer |
REST JSON
- The message has to start and end with "{" and "}" respectively
An array cannot contain mixed content
For example this response that mixes an attribute with an object is not supported:{ [ 3, {} ] }