I don't know the exact answer, but i hope it will help you to find a solution:
DECLARE @iDoc INT
DECLARE @xml as XML
SET @xml = N'<bookinglist>...</bookinglist>'
EXEC sp_xml_preparedocument @iDoc OUTPUT, @xml
SELECT *
FROM OPENXML(@iDoc,'/BookingList/Booking',2)
WITH ([BookingRef] NVARCHAR(50) 'BookingRef',
[BookingDate] NVARCHAR(20) 'BookingDate')
EXEC sp_xml_removedocument @iDoc
EXEC sp_xml_preparedocument @iDoc OUTPUT, @xml
SELECT *
FROM OPENXML(@iDoc,'/BookingList/Booking/ContactDetail',2)
WITH ([Address] NVARCHAR(50) 'Address1')
EXEC sp_xml_removedocument @iDoc
EXEC sp_xml_preparedocument @iDoc OUTPUT, @xml
SELECT *
FROM OPENXML(@iDoc,'/BookingList/Booking/Passengers/PassengerDetail',2)
WITH ([PassengerItem] INT 'PassengerItem',
[Title] NVARCHAR(20) 'Title',
[FirstName] NVARCHAR(20) 'FirstName')
EXEC sp_xml_removedocument @iDoc