CREATE FUNCTION split_string_XML
(
    @in_string VARCHAR(MAX),
    @delimiter VARCHAR(1)
)
RETURNS @list TABLE(NAMES VARCHAR(50))
AS
BEGIN
DECLARE @sql_xml XML = Cast('<root><U>'+ Replace(@in_string, @delimiter, '</U><U>')+ '</U></root>' AS XML)
    
    INSERT INTO @list(NAMES)
    SELECT f.x.value('.', 'VARCHAR(50)') AS NAMES
    FROM @sql_xml.nodes('/root/U') f(x)
    WHERE f.x.value('.', 'VARCHAR(50)') <> ''
    RETURN
END
GO
I am unable to understand the syntax and functionality for the below line
 SELECT f.x.value('.', 'VARCHAR(50)')
what does this '.' indicates and what is its purpose.
 
     
    