I find it helpful to think of OUTER APPLY as being similar to a LEFT JOIN.
When you use a CROSS APPLY, if the applied function (or query) returns no rows, the rows from the primary table get dropped from the result set. If you use OUTER APPLY, you see the data from the primary table whether or not the applied function returns any rows.
In your example, the OUTER APPLY makes sure that whatever data you have is displayed whether or not the node specified exists in the XML>
Against stupidity the gods themselves contend in vain. -- Friedrich Schiller
Stop, children, what's that sound? Everybody look what's going down. -- Stephen Stills