Hi Ashok, thanks for your reply and link, which was very interesting.

I have checked the swagger document and it appears to contain the correct value though:

   "properties": {
        "swagger": {
            "type": "string",
            "enum": [
                "2.0"
            ],
            "description": "The Swagger version of this document."
        }
   }

That's for your prompt reply. I can't post anything without editing text and changing XML structure as it's patient confidential data from a proprietary system. I'll look into what I can do.

I can answer a few though:

 XML Character Encoding is declared as <?xml version="1.0" encoding="UTF-8"?>

This is the XPATH I'm using

//code salient points
#dim tDocument as %XML.XPATH.Document
Set tSC=##class(%XML.XPATH.Document).CreateFromString(pXML,.tDocument)
Set tSC=tDocument.EvaluateExpression(pContext, pExpression,.tResults)

The XML response is being retrieved in the form of a string from Operation with an EnsLib.SOAP.OutboundAdapter adapater, and here's the salient code

// Salient code
set ..Adapter.WebServiceURL  = ..URL
Set ..Adapter.WebServiceClientClass = "rocessMessageSoap"
Set tSC = ..Adapter.InvokeMethod("ProcessMessage",.ProcessMessageResult,tRequestMessage.requestMessageXml)  Quit:$$$ISERR(tSC) tSC
Set tSC = tRequestMessage.NewResponse(.pResponse)  Quit:$$$ISERR(tSC) tSC
Set pResponse.ProcessMessageResult=$get(ProcessMessageResult)

//where pResponse.ProcessMessageResult contains the XML response we are analysing

Yes I did, I change the class Field to the following and compiled? Is this correct?

Class Field Extends (%Persistent, %XML.Adaptor)
{
Parameter XMLNAME = "Field";
Parameter NAMESPACE = "http://www.civica.co.uk/ParisConnect/ConnectXml/1.0/Messaging";
// Property Type As %String(XMLNAME = "xsi:type", XMLPROJECTION = "ATTRIBUTE");
Parameter XMLTYPE = "UDFLookupFieldInstance";
Property Suffix As %String(XMLNAME = "Suffix", XMLPROJECTION = "ATTRIBUTE");
Property Description As %String(XMLNAME = "Description", XMLPROJECTION = "ATTRIBUTE");
Property ID As %String(XMLNAME = "ID", XMLPROJECTION = "ATTRIBUTE");
Property Value As %String(MAXLEN = "", XMLNAME = "Value");
}

The same error is produced.

In my original post I did mention that that xsi:value can be anything, so assuming I made a mistake what would I need to do to this into account?